ART experimentation

So I had my android kitkat update on my nexus 4 a couples of days ago, and I’ve done some testings of the new experimental runtime called ART.
http://source.android.com/devices/tech/dalvik/art.html

For now i just made some quick testing, and I’ll post here when i got more results, but it looks kind of promising.

I used the TestHardwareSkinning scene we have in the repo, but set it to use software skinning.
Software skinning is quite CPU intensive, because it constantly writes to direct buffers and it’s known to suck big time on dalvik.

I used only 9 Oto’s with the lighting material and software skinning to have a kind of decent frame rate.
looks like that (don’t mind the fps, the shot was done on my desktop computer)

results so far :
Dalvik : 15 stable fps, and constant GCing output in the log.
ART : 21 to 25 fluctuating FPS, no GCing output except once, when the scene init is done.

It’s kind of good so far.

I’m gonna try some other tests, something that can be CPU intensive. If you have some ideas, feel free to share.

5 Likes

Awesome, keep us updated :smiley:

can you test the reflective part please ? I am more and more thinking about a lib with signal slot event and some of them around here rely on reflection.

Thanks :slight_smile:

(a simple test with a for loop can be enough as a first test. Remember to test the reflection “find the method” part and the reflection “invoke the already found method” part. The second is really fast on most jvm, as it’s close enough to a “standard” method call).

I was thinking of more JME oriented tests, rather than pure java micro bench but why not.

Hmm… my hypothesis would be that an AOT compiler would be largely unable to optimize reflection, except maybe it has some specialcasing for what’s in the standard library.
So I’d expect <span style=“text-decoration:line-through;”>ART</span> reflection to be as fast or slow as in Dalvik.

Both confirmations and falsifications welcome :slight_smile:

nice one @nehon looking towards the future! good to see