| Flash performance on mobile: hot or not? |
| Written by Guilhem Ensuque |
| Tuesday, 02 March 2010 12:44 |
|
[Update on March 4th: this article has been edited following readers comments given offline. A bug in our CMS was preventing from leaving comments. This is now fixed. Apologies to our readers, those at fault have been fired :) Edits are denoted with brackets and In recent weeks, the web has been abuzz with the announcement of Adobe's Flash Player 10.1 and AIR 2.0 availability on Android devices. However what has lacked direly so far is quantitative evidence of Flash's and AIR code execution performance on mobile (yeah, I know… we’ve seen some cool videos and detailed battery benchmarks, but no objective bench about execution performance). But I have news ! ... I have been lucky enough to play with a FP10.1-enabled NexusOne at Mobile World Congress in Barcelona, and did a little experiment: browse to Grant Skinner's well-known online ActionScript performance test. And here is the result (click for hi-res pictures): Apologies for the poor picture quality, here is what can be read from the second benchmark item: ******************************************
In layman's terms this test measures the time taken to perform various Actionscript functions in several iterations (5 here). The shorter it takes, the better Flash code execution performance is. It took the Flash Player v10.1 on Google’s NexusOne some 1258 milliseconds on average to execute the bit of Grant Skinner’s benchmark shown above (note that the NexusOne has a Qualcomm Snapdragon CPU clocking at 1GHz). In order to put this figure in context, I ran the same test on my 3-year old Dell Latitude D420, which has a 1.2GHz Intel dual-core CPU, on WindowsXP with the latest Flash Player 10.1 Beta3 plugin installed in Firefox 3.5.8. The AS3 functions bench then executed in 228 ms. [Note that in both cases above, there is an additional Flash banner ad in the website's header that may actually skew the bench's result ... funny how these things go unnoticed sometimes]
[It turns out that the gskinner figures in Mike's slides from FITC Amsterdam are just a screengrab from his Mac screen, and not a run of the CS5-compiled bench on iPhone. That slide was for illustration purposes of good tools for perf optimisation. I got carried away. Sorry Mike. It would be great though if you would publish those bench figures ... :)] Finally, I take this occasion to compare Actionscript bytecode interpretation performance with our very own ELIPS Studio ActionScript-to-native compiler. Since I unfortunately do not have a NexusOne at hand, I compiled the same bench code natively with ELIPS Studio and ran it on an iPhone 3GS, which has a CPU clocking at 600MHz. The AS3 functions bench then executed in 55 ms. The chart below summarises the results. With this benchmark, ELIPS Studio [seems] It seems pretty obvious to me that native code as compiled with ELIPS Studio will always beat bytecode interpretation. |





Comments
Native code will always perform better than bytecode, no matter what the platform.
A better comparison would be what you are not able to test: CS5 compiler to ELIPS compiler. Or, if Flash Player was on the iPhone then FP on iPhone vs FP on the Nexus could be comparable. But it's not on the iPhone, and may never be.
FP 10.1 code on the Nexus is driven through the plug-in through the browser. ELIPS on the iPhone is "native" driven code. So there really is no comparison. It would be best not to pit the two against each other at all.
In either case ELIPS does look like a very efficient way to get Flex/Flash written code to the iPhone/Android.
Thanks for your comment. I agree that this little "experiment" is not yet conclusive.
You have a point in that it would be great to compare with bench figures for the CS5 compiler. Unfortunately Adobe does not want to release those at present :(
As soon as we have figures, then be sure we'll post here ... (BTW: if anyone with the CS5 pre-release reads this, feel free to comment on your own experience)