Stage3D vs. WebGL vs. AIR
Today’s article is in response to the many requests to include Adobe AIR in the “Flash vs. HTML5” series of articles. While it’s not a browser-based competitor, it certainly is a competing platform on iOS and Android. So I’ve taken the “Stage3D vs. WebGL” test and packaged it as an AIR app. How does AIR compare? Read on to find out.
The source code for this test is identical to the Stage3D vs. WebGL test, but the output now includes an Android APK and an iOS IPA. You’re free to try out the APK by downloading and installing it on your Android device after you’ve enabled side-loading in your system preferences. Due to the way that iOS apps are developed, I can’t release an iOS IPA that is usable on anyone else’s devices and it’s not an app that should go in the Apple App Store. This means that if you want to test out the app on your own, you’ll need to acquire an iOS developer’s license (currently $99) and package the app yourself.
Here are the devices tested:
|MacBook Pro Retina||2.3 GHz Intel Core i7||NVIDIA GeForce GT 650M||OS X 10.8.3|
|Windows Desktop||3.4 GHz Intel Core i7 2600||Nvidia GeForce GTX 550 Ti||Windows 7 SP 1|
|iPad 2||1 GHz ARM Cortex-A9||PowerVR SGX543MP2||iOS 6.1.3|
|LG Optimus G||1.5 GHz Qualcomm Krait||Qualcomm Adreno 320||Android 4.1||HTC Evo V 4G||1.2 GHz Qualcomm Snapdragon||Qualcomm Adreno 220||Android 4.0|
And here are the results:
|Device||Opaque Rotation||Opaque Scaling||Opaque Rotating & Scaling||Alpha Rotating||Alpha Scaling||Alpha Rotating & Scaling|
|HTC Evo V 4G – Android 4 Browser (2D)||0.7||0.8||0.6||0.7||0.8||0.6|
|HTC Evo V 4G – Firefox 21 (WebGL)||5.6||9.8||6.1||n/a||n/a||n/a|
|HTC Evo V 4G – Google Chrome 27 (2D)||0.4||0.4||0.3||0.3||0.4||0.3|
|HTC Evo V 4G – Google Chrome 27 (WebGL)||8.1||10.2||5.5||7.9||9.6||7.8|
|HTC Evo V 4G – Adobe Air 3.7 (Stage3D)||19.4||18.6||17.5||19.6||18.7||17.4|
|Apple iPad 2 – Safari (2D)||2.6||2.6||2.5||2.6||2.6||2.5|
|Apple iPad 2 – Google Chrome 27 (2D)||1.5||1.6||1.5||1.5||1.6||1.5|
|Apple iPad 2 – Adobe AIR 3.7 (Stage3D)||12.6||11.4||10.2||12.6||11.4||10.2|
|LG Optimus G – Android Browser (WebGL)||n/a||n/a||n/a||n/a||n/a||n/a|
|LG Optimus G – Firefox 21 (WebGL)||4.3||12.1||5.2||7.3||10.8||7.5|
|LG Optimus G – Google Chrome 27 (2D)||0.7||0.7||0.7||0.7||0.7||0.6|
|LG Optimus G – Google Chrome 27 (WebGL)||12.7||13.8||12.3||11.7||12.7||9.6|
|LG Optimus G – Adobe AIR 3.7 (Stage3D)||37.9||30.7||28.2||31.9||30.2||28.5|
|Motorola Xoom – Android 4 Browser (2D)||0.9||0.9||0.7||0.9||0.8||0.7|
|Motorola Xoom – Firefox 21 (WebGL)||5.3||5||4.4||5.1||5.1||4.6|
|Motorola Xoom – Google Chrome 27 (2D)||0.7||0.7||0.7||0.7||0.7||0.7|
|Motorola Xoom – Google Chrome 27 (WebGL)||7.2||7.5||6.5||7.6||7.8||6|
|Motorola Xoom – Adobe AIR 3.7 (Stage3D)||20.5||20.1||19.2||20||20.2||19.2|
|MacBook Pro Retina – Google Chrome 27 (WebGL)||60||60||60||60||60||60|
|MacBook Pro Retina – Firefox 21 (WebGL)||60||60||60||60||60||60|
|MacBook Pro Retina – Safari 6 (WebGL)||20||20||20||20||20||20|
|MacBook Pro Retina – Flash Player 11.7 (Stage3D)||60||60||60||60||60||60|
|Windows Desktop – Google Chrome 27 (WebGL)||60||60||60||60||60||60|
|Windows Desktop – Firefox 21 (WebGL)||60||60||60||60||60||60|
|Windows Desktop – Internet Explorer 10 (2D)||18.1||19.7||12.6||21.8||19.1||13.3|
|Windows Desktop – Flash Player 11.7 (Stage3D)||60||60||60||60||60||60|
Overall, we see excellent performance on both iOS and Android with Adobe AIR. On all four devices it was tested on it was much faster than the HTML5 options, even when WebGL was available. Compared to the second-fastest option, AIR ran between 2.2x and 2.8x faster on Android and 4.4x faster on iOS, presumably due to the ahead-of-time (AOT) compiling of AS3 to native code and the lack of WebGL support in HTML5. As I’ve pointed out before though, this isn’t really a fair fight. This is a comparison of apps against web sites. So what we’re really seeing here is the inefficiency of those web sites: how much the browser is slowing hampering performance.
As a head-to-head competition, we’re comparing apples to oranges. However, these results may be very useful if you’re wondering how much of a performance hit you can expect by deploying your app or game via the browser compared to a standalone app. The answer: between 2.2x and 4.4x.
As a disclaimer with mobile, there are many devices out there with wildly different performance characteristics. Even iOS has five base models of iPad, six of the iPhone, and five of the iPod Touch. There are hundreds to thousands of Android devices. It’s therefore really hard to get a complete picture of mobile performance since very few people have access to so many devices. I certainly don’t. However, I’m guessing many people reading this article have a couple of minutes to point their mobile browsers at the above tests and install the Android APK. Want to contribute your own test results? Post a comment with your device name, opaque and alpha times, and if you have them or can look them up, CPU and GPU specs.