CPU And System Performance
In this section, we evaluate system-level performance by running a series of synthetic and real-world workloads, along with some browser-based Web tests. There are several facets to overall device performance, including single- and multi-threaded CPU performance, memory and storage speed, and GPU rendering, all of which will be probed by our suite of benchmarks. If you're interested in learning more about how these benchmarks work, what versions we use, or our testing methodology, please read our article about how we test mobile device system performance.
OnePlus 2 midframe: Modified by Tom’s Hardware [Image Source: iFixit]
It's no secret that Qualcomm's Snapdragon 810 SoC overheats. The combination of ARM’s relatively power-hungry Cortex-A57 CPU, TSMC's 20nm HKMG process, and Qualcomm's inexperience with ARM’s latest IP (it had not used stock ARM cores in a while) led to an inefficient design with high thermal dissipation. LG’s G Flex2 and HTC’s One M9 both used the first shipping revision of the 810 (v2.0) when they launched, and the SoC’s severe thermal throttling put a lot of heat on both companies. Qualcomm has since released a newer revision of the 810 (v2.1) that reduces power consumption and improves memory performance, but not by much. It's this newer revision of the 810 that resides within the OnePlus 2.
Using the 810 seems like a big risk for OnePlus, a risk LG was unwilling to take based on its decision to use the Snapdragon 808 instead of the 810 in the G4. When OnePlus announced it would be using the 810 in its new phone, it confidently proclaimed that it had tamed the fire-breathing dragon with clever hardware design and software-based thread scheduling. Looking inside the OnePlus 2 shows some evidence of this. In the picture above, we can see that OnePlus uses a presumably copper heat spreader to transfer thermal energy from the SoC into the magnesium-alloy midframe. This setup should help keep heat from building up around the SoC.
The OnePlus 2 is off to a pretty good start in Basemark OS II, with the best overall score for Android devices. Looking at the single- and multi-threaded CPU System test shows the OnePlus 2 outpacing the OnePlus One’s Krait 400 CPUs by 17 percent and the Snapdragon 808 devices by about 9 percent, not particularly wide margins. It manages to improve upon the HTC One M9’s score by a more significant 89 percent, though.
Tracking the clock frequency of the CPUs shows why: The OnePlus 2 generally keeps two A57 cores active at their max frequency (1.77GHz) during the single-threaded tests—which is why its score is similar to the Snapdragon 808 devices that only have two A57 cores—compared to the M9 that leaves its A57 cores idle, leaving the test to run entirely on the slower A53 cores. The multi-threaded tests also show a disparity between the OnePlus 2, which keeps its A53 cores at max frequency and all four A57 cores between 1.34GHz and 1.54GHz, and HTC One M9, which keeps its A53 cores close to idle and does not allow its A57 cores to go above 1.25GHz. Samsung’s Galaxy S6 uses its higher-clocked A57 cores (2.1GHz) to pull ahead of the OnePlus 2 by 16 percent, similar to its 18.6 percent clock frequency advantage.
The finishing order is similar in the cpu-centric Web test, but there are some differences in the Graphics test. The OnePlus 2 still falls behind the newer iPhone 6s Plus, but outperforms the Galaxy S6 by 19 percent and the LG G4 by 52 percent.
In AndEBench, the OnePlus 2 lands near the bottom of the chart in terms of the overall score, just ahead of the One M9 but a little behind the OnePlus One and Asus ZenFone 2. One of the reasons for this is its weak score in the CoreMark-HPC CPU performance test, which consists of single- and multi-core segments for gauging integer and floating-point throughput. To understand these results, we must examine the CPU governor’s behavior.
|AndEBench Pro: CoreMark-HPC (Base) Single-Core|
|OnePlus 2||HTC One M9||Samsung Galaxy S6||LG G4|
|A53 cores||4x @ 1555MHz||4x @ idle||4x @ idle||4x @ idle|
|A57 cores||4x @ idle||4x @ 1536MHz||4x @ 2100MHz||2x @ 1824MHz|
|AndEBench Pro: CoreMark-HPC (Base) Multi-Core|
|OnePlus 2||HTC One M9||Samsung Galaxy S6||LG G4|
|A53 cores||4x @ 1555MHz||4x @ 1555MHz||4x @ 1500MHz||4x @ 1440MHz|
|A57 cores||2x @ 1766MHz||4x @ idle||4x @ 1704MHz||2x @ ~1500MHz|
The table above summarizes the average behavior of each device in both segments of the test. When running a single thread, the OnePlus 2 prefers to use the lower-performing (and lower-power) A53 cluster. The other devices do the exact opposite, running the thread on the A57 cluster for max performance. When running multiple threads, its behavior is not much different than the LG G4’s: It runs its A53 cluster at max frequency and ends up with two A57s at max frequency (it power gates the other two cores), resulting in a similar core configuration as the Snapdragon 808 in the LG G4 but with slightly better performance.
Judging by its multi-core behavior, the OnePlus 2’s thermal tolerance falls between the HTC One M9’s and the Galaxy S6’s. Where the M9 must leave its A57 cluster at idle frequency when fully utilizing its A53 cluster, the OnePlus 2 can leverage at least two of its A57 cores alongside its A53 cluster. The Galaxy S6, however, can use all eight of its CPU cores simultaneously, albeit at less than peak frequency, thanks to the lower leakage current and operating voltage of its newer FinFET process.
The chart above graphically illustrates the Exynos 7420’s process advantage and how the OnePlus 2 and Galaxy S6 utilize their A57 cores. We can clearly see the difference in the single-core segment, where the OnePlus 2 leaves its A57 cluster idle. Ignoring some minor fluctuation due to a coarse sampling rate, the Galaxy S6 uses all four A57 cores in the multi-core segment, adjusting clock frequency between 1300MHz and 1704MHz. The OnePlus 2 again behaves differently, only keeping two A57 cores running at max frequency on average and occasionally switching which cores are active, presumably to mitigate local heat buildup.
In addition to lower power consumption (and less thermal throttling), Snapdragon 810 v2.1 is also supposed to see a small boost in memory performance, but we do not see evidence of this in the AndEBench Memory Bandwidth test. The HTC One M9 and its v2.0 SoC scores 27 percent better than the OnePlus 2. However, most of this difference (and possibly all of it) has nothing to do with memory bandwidth. How can this be possible? Because you cannot test memory bandwidth without the CPU’s help. Also, the STREAM benchmark, which is what the AndEBench test is based on, performs a number of arithmetic operations as part of its workload, so it’s about more than just pure memory bandwidth. Because the CPU governors behave the same in this test as they did in CoreMark-HPC above, the M9 gets a significant performance boost in the single-threaded portion of the test, apparently more than enough to make up for its deficit in the multi-threaded segment.
The memory latency test measures the time to complete a series of random memory operations, something the 810’s memory controller does not handle well. Based on this and other tests, it appears that it’s optimized for serial rather than random memory access, just like Apple’s A7, A8, and A9 SoCs.
|AndEBench Pro Storage Test|
|512B SW||512B RW||4KB SR||4KB SW||4KB RR||4KB RW||16KB RR||256KB SR||256KB RR|
|OnePlus 2 % Diff||-31%||-21%||-27%||-22%||-26%||-21%||-29%||-25%||-26%|
|First letter: S=sequential, R=randomSecond letter: R=read, W=write||Values in KB/s - Higher is betterFile Size: 5, #Folders: 3, #Files/Folder: 1|
The OnePlus 2’s flash-based storage uses the eMMC standard rather than the better performing UFS 2.0 standard used in the Galaxy S6. It’s no surprise then to see it trail the Samsung phone by 20 to 30 percent in the AndEBench Storage test (the Galaxy S6 edge+ scores lower than the Galaxy S6). While the OnePlus 2 does not have the fastest storage solution available, it still performs very well, with app launch times similar to the LG G4.
The Platform test mimics a real-world workload by stressing CPU, memory, and storage performance. Both of the Snapdragon 810 devices do poorly here, primarily because the memory access patterns in this test appear to be mostly random. This makes the OnePlus 2 slower than the OnePlus One in this particular workload.
In the single-core portion of Geekbench, all of the SoCs using A57 CPU cores put up similar numbers, with minor variation due to max clock frequency. The only noticeable exception is the Galaxy S6 edge+, which scores about 26 percent better than the OnePlus 2 in both the integer and floating-point tests.
HTC’s One M9 throttles its A57 cores almost immediately in the multi-core tests, making it perform no better than the two Snapdragon 808 devices. The OnePlus 2 separates itself from the pack, however, nearly equaling the Galaxy S6 edge+ and outperforming the One M9 by 34 percent and 20 percent in the integer and floating-point routines, respectively. The OnePlus 2 better copes with the thermal load from Geekbench’s short, bursty workloads, keeping three to four A57 cores near max frequency without throttling.
Unlike the AndEBench Memory Bandwidth test, Geekbench shows similar throughput for the OnePlus 2 and HTC One M9 in both the single- and multi-core tests. Geekbench’s workload does not elicit the same behavior from the OnePlus 2’s CPU governor and produces results more in line with what we expect, especially considering both it and the One M9 run their memory busses at the same max frequency. The Galaxy S6 edge+ shows about a 20 percent advantage in memory bandwidth over the OnePlus 2, partially because it runs its memory bus at a higher frequency.
MobileXPRT simulates a number of real-world computational workloads that are not as taxing as synthetic tests like Geekbench. It’s surprising then—and concerning from a user experience perspective—to see the OnePlus 2 plummet to the bottom of the performance chart, slower even than the One M9 and OnePlus One. Like we saw in AndEBench, the OnePlus 2 simply ignores its A57 cluster when dealing with lighter, single-threaded workloads, preferring to use the A53 cluster exclusively.
Like MobileXPRT, PCMark runs several common real-world workloads and is a good indicator of performance when running typical apps. While the OnePlus 2 fares better than the HTC One M9 overall, it’s disappointing to see that it’s no faster than the LG G4 or OnePlus One.
Taking a closer look at the individual test scores shows the OnePlus 2 doing well with video playback and web browsing, with it outperforming the OnePlus One by 35 percent and the HTC One M9 by 43 percent in the latter. The Moto X Pure Edition and Galaxy S6 edge+ are only 14 percent faster. Where the OnePlus 2 falls behind is the Writing test, with a score similar to the One M9.
PCMark, like most common apps we use, presents the processor with a relatively light load, with occasional short bursts of activity. The OnePlus 2 handles this by running most tasks on the A53 cluster. It does keep two A57 cores online and ready to service short bursts of activity, though. The Galaxy S6 achieves better performance because it uses its A57 cores more frequently.
The browser-based tests show the OnePlus 2 performing better than the HTC One M9 and slotting in between the two Snapdragon 808 devices. The Galaxy S6 edge+ is between 11 to 20 percent faster than the OnePlus 2.
While testing browser performance, we noticed that the OnePlus 2 runs Chrome differently than Opera. When running Opera, just like PCMark, the OnePlus 2 keeps two A57 cores active to service bursts of activity; however, when running Chrome, it completely shuts down the A57 cluster and uses the A53s to service all threads. Exploring further reveals this happens with other Google apps too, including Photos, Maps, and YouTube. Third party apps such as Netflix and general UI navigation are immune from this behavior, so it appears that the phone is deliberately deactivating the A57 cluster when it detects a Google app running.
We’ve seen in our other tests that the OnePlus 2 prefers using the A53 cores for most tasks, even ignoring the A57 cores when running single-threaded workloads. The behavior with Google apps just seems to be a stricter enforcement of this general policy. So why is OnePlus doing this? It could be to keep SoC temperature under control. However, our tests show that the OnePlus 2 is capable of handling short bursts of activity without overheating, perhaps because of its better heatsink design, so this does not seem likely. Instead, this appears to be a way to improve battery life at the expense of some performance.
Ultimately, the OnePlus 2 performs similar to the LG G4 and its hexa-core Snapdragon 808. At worst, it resembles an overclocked Snapdragon 410 like when running Google apps.