ARM has rolled out a battery of test results that fire two shots across the bow of Intel's x86 dreadnought now sailing into Android waters.
The first set of results addresses the fact that when running native apps that haven't been recompiled to run on Intel-based Android devices, those apps need to be emulated using "binary translation," which converts native ARM code into native Intel x86 code.
Intel says that users shouldn't worry – its binary translator will "just work" with "very minimal power implications" and "unnoticeable performance impact for most applications." ARM – as you might expect – would beg to differ.
"Binary translation – despite what you may have read or despite what you may hear – does have a huge impact to the user and to the performance of the system," ARM senior technical marketing engineer Rod Watt told attendees at his company's 2014 Tech Day this week in Austin, Texas.
Watt based his conclusions on tests he ran himself, and on benchmark and game-performance test results (Google Translate) he obtained from the Chinese-language website 爱搞机 – which Translate rather less than helpfully renders as "Love to engage in machine."
Before testing performance and power consumption, Watt first checked to see how many popular Android apps need to be translated in order to run on an x86-based Android device. To do so, he twice checked out 100 apps: the top 25 free and paid apps and the top 25 free and paid games in the online Google Play store.
Watt was only concerned the performance of apps containing native code. But it's worth noting that only around 20 per cent of the 100 apps he surveyed ran exclusively on Android's Dalvik virtual machine; the rest contained at least some native components.
What he found was somewhat surprising. Despite the relative ease of porting 32-bit ARMv7 Android apps to native x86 apps using the Android Native Development Kit (NDK), his July 2013 check-up revealed that 42 per cent of those popular apps still required binary translation to run, and that number rose to 44 per cent by January of this year.
What's more – and remember, these are Watt's numbers, not something The Reg has confirmed – the number of native x86 Android apps among those 100 most popular dropped from 30 to 23 per cent during the same period, and the number of apps that failed to run at all using binary translation rose from 6 to 9 per cent.
Of course, there could be any number of reasons why a developer might choose to not bother to use the Android NDK to port their app to x86 – verification time and trouble, for example – but Watt has a more-straightforward analysis. "It's an ARM world," he said. "Developers are writing for ARM; they're not writing for Intel."
Maybe those developers writing for ARM should rethink their decisions not to port their apps to x86 Android, if the performance numbers that Watt shared from 爱搞机 are anywhere near accurate.
The Chinese testers ran a series of benchmarks and the Android game Epic Citadel (Unreal Engine 3) on a Lenovo K800 smartphone powered by an Intel Atom Z2460, running them in both native and binary translated mode.
To say that binary translation induced a performance hit in the testing 爱搞机 conducted would be a gross understatement. As Watt pointed out, benchmarked performance was down by 60 to 80 per cent in nearly every measure.
In addition, not only did their Epic Citadel testing show a drop in average frames per second from 49.5 to 31.2, it also indicated that running in binary translation mode increased the percentage load on the CPU from 58.9 to 73.4, and the current draw from 621 to 717 milliamps – not good news for your smartphone's battery life.
It's that damn translation overhead, one assumes. In point of fact, Watt pointed to the effect of binary translation overhead when running various components of Primate Labs' Geekbench 3.1.4 benchmark suite both in native ARMv7 mode and using binary translation to run the suite on x86.
The results weren't pretty: when using binary translation on this CPU-centric benchmark, power consumption went up nearly 90 per cent and performance dipped by over 40 per cent.
All of his testing of binary translation, Watt said, shows that it "does all the things wrong that you'd want in a tablet. It lowers your performance. It messes up your frames per second and makes things jump. It takes longer to load your application. It reduces your battery life. Basically it does everything wrong that you'd want in a tablet."