System Performance

The OnePlus 2 uses Qualcomm's Snapdragon 810 SoC. At this point we've seen Snapdragon 810 in a number of devices and have an idea of what to expect. That being said, we've seen that performance can vary based on the device it's implemented in due to cooling and other factors like the CPU governor. On top of that, in many situations a device's performance is heavily dependent on the quality of its software in addition to the processing power of its SoC. For those reasons it's important to run the OnePlus 2 through our standard suite of web and native benchmarks in order to gauge its performance relative to other Snapdragon 810 smartphones, and the rest of the smartphone market as a whole.

Kraken 1.1 (Chrome/Safari/IE)

Google Octane v2  (Chrome/Safari/IE)

WebXPRT 2015 (Chrome/Safari/IE)

When I saw the web performance results from the OnePlus 2 I assumed there had been some sort of error, so I decided to completely reset the phone and run them again. Unfortunately, these results are not erroneous. You may have noticed that they bear a remarkable similarity to the results from the Moto G (2015). After looking at the CPU activity during web browsing I realized that this isn't really surprising, because the OnePlus 2 simply does not use any of its Cortex A57 cores during web browsing. This means that you're really getting a quad core Cortex A53 CPU, and with JavaScript being heavily bound by the performance of a single core it's no wonder that the results are close to those of the Moto G (2015) which uses a quad core 1.4GHz Cortex A53 CPU.

I don't really want to retread the Snapdragon 808 and 810 topic, but it's really worth noting that this is the worst implementation of the SoC I've seen to date. It's worth noting that this doesn't say anything about the length of time the A57 cores can run for when they do actually get used, but it shows that they're not getting used in circumstances where they should be: bursty workloads where the full performance of the CPU is needed for a short period of time to improve the user experience. It's especially concerning because OnePlus was making a great deal of noise about their work to manage thermals on Snapdragon 810. I personally don't think simply not using the big cores on an SoC constitutes properly managing its temperature, and the poor JavaScript performance truly does make browsing the web feel like using a slower and much less expensive phone like the Moto G.

Update:

There has been some concern online that these web browsing results may be inaccurate. The evidence to the contrary has been in the form of results from other reviews, results using other ROMs or kernels, or using other web browsers. To clarify, these scores were achieved using the latest version of Oxygen OS for the OnePlus 2, which is 2.1.2, in the latest version of Google Chrome. The reason for the scores is that OnePlus is specifically detecting whether or not Chrome is the active application, and if that is the case they unplug all of the Cortex A57 cores, regardless of the load being placed by both Chrome and background applications. Below I have embedded a video that demonstrates this behavior.

In this circumstance I launched a CPU load virus with 4 threads in order to cause Snapdragon 810's Cortex A57 cores to reach peak clocks. CPU4 through CPU7 represent the Cortex A57 cores, while CPU0 and CPU1 are two of the Cortex A53 cores, with the other two tracking at the same frequencies but not being shown on screen in order to accommodate my fingers. You can obviously see the clocks of the A57 cores dropping as heat becomes an issue, but that's not really the focus here. What is the focus is how all four cores shut off the moment Chrome is opened. This is clear evidence that OnePlus has hard coded this behavior. Whether or not it was introduced in more recent releases of Oxygen OS is hard to say, but given that users report achieving greater scores a few months ago this is very possible. It's also important to note that this behavior only affects Chrome, and results from the Chrome Dev or Chrome Beta channels are unaffected.

While the OnePlus Two is technically capable of faster browser performance, the performance users will actually see using the only browser included on the device is reflected accurately in the results we have published, and not at all accurately by any results other users are achieving with different kernels that modify the CPU behavior, or different releases of Chrome that aren't detected by OnePlus's software. With that in mind, I see no reason to alter the results that have been published, as they accurately characterize the JavaScript performance that most OnePlus Two users will experience.

Basemark OS II 2.0 - System

Basemark OS II 2.0 - Memory

Basemark OS II 2.0 - Graphics

Basemark OS II 2.0 - Web

Basemark OS II 2.0 - Overall

BaseMark OS II is a case where the Cortex A57 cores on the OnePlus 2 actually see some use, which translates into higher relative scores than what was achieved in browser testing. Improved scores in the graphics and NAND memory tests help make the overall score significantly higher than the OnePlus One. It's worth noting that the use of the Cortex A57 cores means that the BaseMark results may not be exactly representative of how the phone will actually perform in general use. For example, in this case the Cortex A57 cores are in use during the web test, while in general they never get used at all during web browsing, and in more intensive situations the best case is that there are two A57 cores in use at some frequency and the other two are shut off.

PCMark - Web Browsing

PCMark - Video Playback

PCMark - Writing

PCMark - Photo Editing

PCMark - Work Performance Overall

In PCMark the OnePlus 2 again does better in the web tests due to the fact that the A57 cores actually switch on, but falls behind in the photo editing test and even more so in the writing test. The writing test is actually a fairly good indicator of CPU performance, because it involves decompressing text files, moving text from one file to another, adding text and images, and then saving them to disk. During that entire period the A57 cores are not triggered at all, which contributes to the low score. Even with that, it's not exactly clear to me what additional factors make the Snapdragon 808 and 810 devices all perform so poorly here compared to a device like the Moto G which just has 4 Cortex A53 cores. It could very well be the result of issues with ART, or other problems with frequency scaling on the A53 cluster. In any case, like all Snapdragon 808 and 810 devices, the OnePlus 2 struggles in the aspects of the test that heavily tax the CPU.

The issues with Snapdragon 808 and 810 have led to many issues with CPU performance this year across a number of Android phones. However, OnePlus is the only company I can remember publicly stating that they had worked to overcome these issues, and the fact that the OnePlus 2 falls so far behind other 808 and 810 devices in the web browsing puts a lot of doubt in the validity of those remarks. It's pretty safe to say that if you care about CPU performance you're much better off with the OnePlus One or OnePlus X, both of which use Snapdragon 801, and if you're thinking about buying the OnePlus 2 you really need to take the performance issues into consideration because they're on a different scale than those on other recent smartphones. At $400 there's a lot of competition, and the CPU and JavaScript performance on the OnePlus 2 just doesn't measure up.

Intro and Design System Performance Cont'd and NAND Performance
Comments Locked

132 Comments

View All Comments

  • LiverpoolFC5903 - Tuesday, December 15, 2015 - link

    Sorry for sounding thick! So basically even though ALL the cores are operating synchronously, indvidual cores in a cluster can be into different power states and/or shut off altogether?

    How does this compare with something like a Snapdragon 801 where all 4 cores run at different frequencies depending on the workload?
  • phoenix_rizzen - Tuesday, December 15, 2015 - link

    The cores in the S810 work the same way as in the S801.

    There's 3 ways that ARM's big.LITTLE setup works:
    1. Cluster migration: either the A57 cluster is active, or the A53 cluster is active. The OS only ever sees 1 cluster of cores (so an S810 would appear as a 4-core SoC). This is done in hardware on the SoC itself.
    2. Core migration: each A57 core is paired with an A53 core. Either the A57 or the A53 is active in each pair, never both at the same time. But an A57 from pair 1 can be active while an A53 from pair 2 is active, while the other two pairs are offline, for example. The OS only ever sees 1 cluster's worth of CPUs (so the S810 would appear as a quad-core). I believe this is done in hardware on the SoC itself.
    3. Forget the name of this one, but all cores in all clusters are available for scheduling, and it's up to the OS to manage everything. 1 core can be online, 2 cores can be online, all the way up to all 8 cores can be online. And the kernel scheduler determines whether a process runs on an A53 core or an A57 core.

    The first big.LITTLE SoCs from Samsung (the Exynos 54xx-something) used method 1. The latest big.LITTLE SoCs from everyone (Exynos 7xxx, Snapdragon 810/808, MediaTek Helios, etc) uses method 3.
  • LiverpoolFC5903 - Wednesday, December 16, 2015 - link

    Thanks mate, but as Andrei pointed out, my question was a different one. But useful information all the same.
  • Andrei Frumusanu - Tuesday, December 15, 2015 - link

    Please ignore phoenix's comment, he seems to have misunderstood the question at hand.

    The Snapdragon 801 behaves as you say, they each have individual frequencies, meaning they're all on their own clock domain. Also each core has their own power domain, meaning each core can be individually turned off.

    The difference again is that ARM CPUs such as the A57 in the S810 have all the same clock domain. However even if they all have the same clock they can still be individually powered off as the power domains are individual as well.

    As to how it compares, it has both benefits and disadvantages. But there seems to be no clear winner.
  • LiverpoolFC5903 - Wednesday, December 16, 2015 - link

    Thank you Andrei, its pretty clear to me now! Synchronous cores (A57, standard ARM cores) have the same clock domain which means cluster frequency remains the same. However, individual cores within each cluster can be powered off based on need and workloads.

    And Krait based quadcores have different clock domains for each core as well as different power domains.

    Understood.
  • WoodyPWX - Tuesday, December 15, 2015 - link

    Nice and honest review as always, thank you! A Lumia 950xl review would be awesome.
  • victorson - Tuesday, December 15, 2015 - link

    I love Anand and the insight in the reviews, but sometimes you guys throw something that even the more experienced reader will find hard to understand. "As always, all devices are calibrated to 200nits except when their brightness curves necessitate testing above that value." Could you kindly elaborate on what is that supposed to mean to those of us who are interested in display quality, but don't have a PhD on the matter? :)
  • Ryan Smith - Tuesday, December 15, 2015 - link

    As close to 200nits as we can get. If we can't hit 200 exactly, then it's the first value over that which we can hit.
  • kasakka - Tuesday, December 15, 2015 - link

    The sandstone black back cover is one of the best things about Oneplus phones. It really helps keeping a big phone like that firmly in your hands. By comparison the Oneplus X or iPhone 6S really needs a cover because they are very slippery.

    Where Oneplus went wrong with the Two was the Snapdragon 810 and that it's not that much of an upgrade from the One. As a One owner, the only things I'd like from it are LTE band 20, better speaker and vibration motor and the fingerprint reader which is positioned very poorly. On phones this size they should be in the back like on the Nexus phones because reaching down to that bottom area when using with one hand is quite annoying. I use the onscreen buttons on my One because of the same reason.

    I really hope they manage a better design with the inevitable Oneplus Three. I like that they haven't jumped on the 1440p bandwagon because that doesn't really give any benefit in phones at this screen size. Just more pixels to push.
  • lid - Tuesday, December 15, 2015 - link

    Thank you for providing LTE band information! It has always been a deciding factor for me, since I travel constantly. This phone doesn't seem great for anyone who frequently visits the EU from the US (since the US version is missing LTE band 3), or vice versa (since the EU version is missing LTE bands 2/4).

Log in

Don't have an account? Sign up now