Video comparing Air performance versus Corona

Hya, We were thinking about using air for our next project. So we thought we'd do some performance testing. The result was so shocking that I made a video to show you all.

Click here for the Youtube video

wow !!!

thanks for putting that video up.

.c

It's interesting that Corona SDK went to 100 on the nexus S compared to a paltry 25 (I say at 19 the performance hit was very noticible) for Adobe Air. Glad I decided to go with Corona instead of learning something silly like flash or air etc etc.

ng

What's also interesting is the difference in performance between the Nexus S vs the Ipad 2.

The Corona version's performance on the iPad 2 is about 3X better than the Nexus, which seems reasonable. In my own testing the iPad 2 blows away iPhone 4.

But oddly (to me anyway) the Air version performs almost 3X better on the Nexus than the iPad 2. Air must be completely unoptimised for iOS, or (tinfoil hat on) iOS is somehow crippling Air-made apps.

EDIT: I guess a third possibility is Corona is unoptimized for Android, in which case as soon as Ansca fixes that we should expect to get 1500 animating sprites at 60 fps on Android ;)

@superherocheesecake

Thanks for posting that...

Just curious, what was the file size of complied apps for both?

@superherocheesecake,

That is a wonderful way to demonstrate the comparison.

just wondering if you could put the app or the source for the comparison apps for us to try, demonstrate.

it would be a wonderful idea for anyone to be able to demonstrate on the device than just show a video, for more believeability.

cheers,

?:)

Yah source would be cool to do some profiling and see what we can do in android and iPad.

And you know, we were suppose to optimize the graphics gpu last time but due to android build issues......

.c

Hya all,

Thanks for the responses.

About the sizes:

IOS:
flash: 4mb (compressed in an ipa), 20 mb uncompressed
corona: 10mb (uncompressed)

Android
flash: 119kb
corona: 4mb

And the sources:

They are both very unoptimized of course.

Download them here

Credits to our intern Wouter Versluys for creating these tests.

there are better ways to render in Flash. Corona makes it easier yes, but it doesn't always win out. it depends what you are doing..

good article though. but check this one too...

http://blog.krozalski.com/?p=1

good to know the pro's and con's of all the different methods.

@jmp909
Thanks for the blog url, i agree with you, it's good to know the pros and cons of each method. I'll take a look at the source code from krozalsky's blog to know if i could optimize it more

EDIT: after looking at it, the source code is actually quite optimized though. I tried to build using latest daily build of corona and run it on Xperia Play and sadly only got 11 fps

cannot download sources - says "you're not subscriber" however I am subscriber...

I ran both the cheesecake test and the first test on the krozalski blog on an iPad 2 and iPhone 4 using the daily build 619. Here are my results.

The krozalski test animates 1,500 sprites on screen at once. I got 9 fps on the iPad 2 and 4 fps on iPhone 4. Even the Corona simulator, which is usually blazingly fast, could only manage 24 fps on my iMac. In contrast, the same demo running as flash in a browser window was able to maintain 60 fps even while I had the same demo running in the simulator. Here's a link to the browser version:
http://krozalski.com/lab/spritesheet-anim/test1.html

The Cheesecake source has added a fps counter since the video was made. I'm interested in sustained framerate performance since my app uses physics and the simulation visibly slows as the framerate drops, so I used the minimum framerate as a benchmark for performance.

The iPad 2 sustained 30 fps with up to 80 sprites on screen. At 100 objects the min fps dropped to 24. At 150 objects it was about 15 fps. At 200 objects it was 11 fps. 300 objects resulted in 7 fps min.

On the iPhone 4 I could only get 20 animating sprites before the fps started to drop below 30. At 30 objects it was about 24 fps. At 50 object 13 fps. At 100 objects 6 fps, and 200 objects I saw the min fps drop to a measly 2.

Again, these results are the min fps. Visually the framerates looked a bit better since they were fluctuating wildly between the min and better framerates, but it's interesting that with only 20 sprites performance starts to drop on an iPhone 4. Hopefully Ansca can do something to improve the performance.

views:1598 update:2011/10/10 15:46:04
corona forums © 2003-2011