May 11 AT 11:10 PM Taylor Wimberly 28 Comments

JIT performance boost coming with Android 2.2

It looks like our earlier reports that a JIT compiler was coming soon to Android have come true. Ian Douglas, a developer at Armor Games, has posted some screens for the popular benchmark app Linpack running on Android 2.2 which indicates a large performance boost. A normal stock Nexus One generates a benchmark score of 6-7 MFLOPS, while the same Nexus running Android 2.2 is able to score 38-40 MFLOPS.

Some of these higher Linpack scores have appeared on their Top 10 list for awhile, but this is one of the first times I’ve seen a screen shot. We believe Google’s team is close to releasing a stable version of the Dalvik JIT compiler because two of them (Ben Cheng and Bill Buzbee) will be outlining their work at Google I/O in a session called “A JIT Compiler for Android’s Dalvik VM“.

Even though these tests were run on a Nexus One, the new JIT compiler should offer a performance boost to all Android phones that are updated to Android 2.2. The benchmarks might be impressive, but only time will tell how they translate into real world performance. Most apps will have to be tested and tuned to take advantage of the new compiler so it could be several months before we see the full benefits of this update.

Stay tuned next week for the rest of this story.

Linpack scores on Android 2.2.

Source: Ian Douglas

Taylor is the founder of Android and Me. He resides in Dallas and carries the Samsung Galaxy S 4 and HTC One as his daily devices. Ask him a question on Twitter or Google+ and he is likely to respond. | Ethics statement

    Most Tweeted This Week

  • http://Website myke b

    lol i just sent your a email about this, wanted your to post this up as i feel this is the best thing happening to android and i always read your site.

  • http://Website Andrew

    How do we know this is Android 2.2, and not just 2.1 with the JIT compiler replaced like currently being worked on by the devs on XDA.

    Eitherway sounds looks incredibly promising, but given all the issues the XDA-Dev’s were having it looks like it may still be a ways away.

  • http://Twitter.com/maverick262 Scott

    Easy way to tell that’s a 2.2 build is look at the position of the pm on the clock. It’s nothing like previous builds of Android and is identical to the flash video posted yesterday that showed the UI for 2.2.

  • http://Website Tobias Fünke

    Will JIT speed up Android apps or will it speed up the actual OS too?

    • http://Website Loke

      Everything will get a speed boost ;P

      • http://Website hector

        Not everything will be sped up.

      • http://Website Tim

        Anything that runs in dalvik will be sped up. That’s pretty much everything except webkit (i.e. rendering web pages).

  • stalker

    simply amazing. 8 days to go for google IO and froyo.. :)

  • http://www.typhon4android.org/ Mike Leahy

    About time.. ;P

    >but only time will tell how they translate into real world performance. Most apps will have to be tested and tuned to take advantage of the new compiler so it could be several months before we see the full benefits of this update.

    Not exactly.. A JIT compiler doesn’t require specific tuning. Things will just run better and most definitely real time apps & games in Java (yeah!). Anything that has a near real time loop that executes over and over (a game loop) will benefit extremely well from this and not require any tuning. In regard to tuning a JVM (J2SE) one usually manipulates heap size and eden space and the young generation sizes to small values so quicker garbage collection happens more frequently, but without big lags. These tuning parameters are not JIT related though and one can’t presently modify these values on vanilla / stock ROMS.

    One thing I think that is going to definitely improve is NIO performance and filling buffers. This is something that is painfully slow presently. The JIT may even allow reasonable client side per frame dynamic buffer filling which is not so good sans JIT. One thing that absolutely sucks up loading time in Auriga3D is calculating curved surfaces and storing them in NIO buffers Load time of 2-3 minutes for Q1DM1 most of that dealing with curved surfaces.

    Very glad it’s seemingly here; drop it like it’s hot big G, a week is too long to wait! This is a big win for Android / Java real time app & game dev.

    • stalker

      >>Very glad it’s seemingly here; drop it like it’s hot big G, a week is too long to wait! This is a big >>win for Android / Java real time app & game dev

      Yeah right a week is long to wait.. :)

  • http://Website hector

    Mike has explained it perfectly: no tuning, automatic benefits.

    @Tobias The kernel is already binary code, as some of the android services, so no huge gain here. Home is java code, though. I’ll say “android OS” will see some benefits, but not as high as apps.

  • http://roryok.com roryok

    So how does this work with the Myriad Dalvik Turbo that was demo’ed a few months back? Would that then lead to additional performance benefits or is it an either or situation?

    • http://Website hector

      Either or.

      Anyway, I always thought the Myriad VM was a bad move (compatibility, fragmentation, and market wise).

      • http://Website RJ7855

        Who knows….. maybe it is (partially) Myriad VM . When I spoke with Myriad at the WMC they stated that they offered it to Google and various phone manufacturers.

        • http://Website hector

          Dunno if there’s Myriad code in there, but this VM and it’s JIT compiler is going to be open source, and that doesn’t cope with Myriad’s commercial interests. Besides, JIT compiler code was available in the 2.0 brach, but as Cyanogen tested, it wasn’t mature enough.

          I’m sure Myriad wants manufacturers to buy their VM, but what kind of interest could have Google in buying a propietary, closed source VM? Google doesn’t sell prebuilt ROMs, they sell application packages. The OS is the same on every manufacturer (and also *the same* as found in the AOSP).

          But in the end, it doesn’t matter. The Google JIT VM and Myriad’s VM are not additive. You can only have one VM.

  • SGB101

    will it effect battery life?

    • http://Website hector

      Yes, more battery life in nearly every situation. How much, I cannot know…

  • http://Website Matt

    Looks amazing, to bad I am on Droid eris and probably will never get this (at least not from verizon anyway). I wish I could have that phone, my droid eris is getting 2 MFLOPS, and terrible battery life.

  • http://Website Nuts

    Download the google I/O app on the market. There are JIT related meetings scheduled.

  • http://OrganizedFellow.com Organized Fellow

    thanks for the app suggestion.
    For anyone who can’t find it, search for “Google I/O 2010″ by Goggle, Inc.

  • http://Website Jhoravi

    Good for battery life? That’s great!! But I have some questions:

    1. What about RAM usage? Does JIT need more?
    2. Does this Dalvik JIT support JAZELLE hardware acceleration? All ARM chips have it so it’s a waste if not utilized.
    3. Will the application start-up delay worsen because of JIT initial compilation?
    4. Why not AOT instead of JIT? It should solve start-up delay. RAM is no longer an issue because 512MB is becoming standard in Android. Any plan for AOT atleast?

    thanks

    • http://twitter.com/bmastenbrook Brian Mastenbrook

      The original Jazelle instructions were not actually a performance benefit in many cases which is why many commercial J2ME implementations did not make use of it. It was also specific to the JVM instruction set which Dalvik does not use. It was replaced with a new set of instructions which are more general for things like bounds checking. Depending on the implementation of the JIT these instructions may not help much either.

  • http://Website riffraff

    But judging from battery indicator it won’t improve so much ;-)

  • http://twitter.com/GiorgioRegni Giorgio Regni

    Very good news, too bad it took so long, finally my nexus one will get a much needed extended battery life… crossing fingers…

  • http://Website Anthony

    Just hit slightly over 40. On a speed test. This new speed for my N1is amazing however there are two noticeable slow downs which is the boot up time when ever i turn on the phone and the screen rotation switch.

  • http://Website Karl

    Hi,
    I’ve just tried another benchmark : caffeinemark by FlexyCore. This one tests the java performance of android phones, not just math. Plus, results are published so you can compare your device with others, here ! :

    http://www.flexycore.com/benchmark-database-access.html

    This app seems intended to compare the gain you can get from using their technology, called droidbooster which seems to boost java performance on the phone as the JIT does.

  1. myke bGuest 5 years ago

    lol i just sent your a email about this, wanted your to post this up as i feel this is the best thing happening to android and i always read your site.

  2. AndrewGuest 5 years ago

    How do we know this is Android 2.2, and not just 2.1 with the JIT compiler replaced like currently being worked on by the devs on XDA.

    Eitherway sounds looks incredibly promising, but given all the issues the XDA-Dev’s were having it looks like it may still be a ways away.

  3. ScottGuest 5 years ago

    Easy way to tell that’s a 2.2 build is look at the position of the pm on the clock. It’s nothing like previous builds of Android and is identical to the flash video posted yesterday that showed the UI for 2.2.

  4. Tobias FünkeGuest 5 years ago

    Will JIT speed up Android apps or will it speed up the actual OS too?

  5. simply amazing. 8 days to go for google IO and froyo.. :)

  6. About time.. ;P

    >but only time will tell how they translate into real world performance. Most apps will have to be tested and tuned to take advantage of the new compiler so it could be several months before we see the full benefits of this update.

    Not exactly.. A JIT compiler doesn’t require specific tuning. Things will just run better and most definitely real time apps & games in Java (yeah!). Anything that has a near real time loop that executes over and over (a game loop) will benefit extremely well from this and not require any tuning. In regard to tuning a JVM (J2SE) one usually manipulates heap size and eden space and the young generation sizes to small values so quicker garbage collection happens more frequently, but without big lags. These tuning parameters are not JIT related though and one can’t presently modify these values on vanilla / stock ROMS.

    One thing I think that is going to definitely improve is NIO performance and filling buffers. This is something that is painfully slow presently. The JIT may even allow reasonable client side per frame dynamic buffer filling which is not so good sans JIT. One thing that absolutely sucks up loading time in Auriga3D is calculating curved surfaces and storing them in NIO buffers Load time of 2-3 minutes for Q1DM1 most of that dealing with curved surfaces.

    Very glad it’s seemingly here; drop it like it’s hot big G, a week is too long to wait! This is a big win for Android / Java real time app & game dev.

    • >>Very glad it’s seemingly here; drop it like it’s hot big G, a week is too long to wait! This is a big >>win for Android / Java real time app & game dev

      Yeah right a week is long to wait.. :)

  7. hectorGuest 5 years ago

    Mike has explained it perfectly: no tuning, automatic benefits.

    @Tobias The kernel is already binary code, as some of the android services, so no huge gain here. Home is java code, though. I’ll say “android OS” will see some benefits, but not as high as apps.

  8. roryokGuest 5 years ago

    So how does this work with the Myriad Dalvik Turbo that was demo’ed a few months back? Would that then lead to additional performance benefits or is it an either or situation?

    • hectorGuest 5 years ago

      Either or.

      Anyway, I always thought the Myriad VM was a bad move (compatibility, fragmentation, and market wise).

      • RJ7855Guest 5 years ago

        Who knows….. maybe it is (partially) Myriad VM . When I spoke with Myriad at the WMC they stated that they offered it to Google and various phone manufacturers.

        • hectorGuest 5 years ago

          Dunno if there’s Myriad code in there, but this VM and it’s JIT compiler is going to be open source, and that doesn’t cope with Myriad’s commercial interests. Besides, JIT compiler code was available in the 2.0 brach, but as Cyanogen tested, it wasn’t mature enough.

          I’m sure Myriad wants manufacturers to buy their VM, but what kind of interest could have Google in buying a propietary, closed source VM? Google doesn’t sell prebuilt ROMs, they sell application packages. The OS is the same on every manufacturer (and also *the same* as found in the AOSP).

          But in the end, it doesn’t matter. The Google JIT VM and Myriad’s VM are not additive. You can only have one VM.

  9. will it effect battery life?

  10. MattGuest 5 years ago

    Looks amazing, to bad I am on Droid eris and probably will never get this (at least not from verizon anyway). I wish I could have that phone, my droid eris is getting 2 MFLOPS, and terrible battery life.

  11. NutsGuest 5 years ago

    Download the google I/O app on the market. There are JIT related meetings scheduled.

  12. Organized FellowGuest 5 years ago

    thanks for the app suggestion.
    For anyone who can’t find it, search for “Google I/O 2010″ by Goggle, Inc.

  13. JhoraviGuest 5 years ago

    Good for battery life? That’s great!! But I have some questions:

    1. What about RAM usage? Does JIT need more?
    2. Does this Dalvik JIT support JAZELLE hardware acceleration? All ARM chips have it so it’s a waste if not utilized.
    3. Will the application start-up delay worsen because of JIT initial compilation?
    4. Why not AOT instead of JIT? It should solve start-up delay. RAM is no longer an issue because 512MB is becoming standard in Android. Any plan for AOT atleast?

    thanks

    • Brian MastenbrookGuest 5 years ago

      The original Jazelle instructions were not actually a performance benefit in many cases which is why many commercial J2ME implementations did not make use of it. It was also specific to the JVM instruction set which Dalvik does not use. It was replaced with a new set of instructions which are more general for things like bounds checking. Depending on the implementation of the JIT these instructions may not help much either.

  14. riffraffGuest 5 years ago

    But judging from battery indicator it won’t improve so much ;-)

  15. Giorgio RegniGuest 5 years ago

    Very good news, too bad it took so long, finally my nexus one will get a much needed extended battery life… crossing fingers…

  16. AnthonyGuest 5 years ago

    Just hit slightly over 40. On a speed test. This new speed for my N1is amazing however there are two noticeable slow downs which is the boot up time when ever i turn on the phone and the screen rotation switch.

  17. KarlGuest 5 years ago

    Hi,
    I’ve just tried another benchmark : caffeinemark by FlexyCore. This one tests the java performance of android phones, not just math. Plus, results are published so you can compare your device with others, here ! :

    http://www.flexycore.com/benchmark-database-access.html

    This app seems intended to compare the gain you can get from using their technology, called droidbooster which seems to boost java performance on the phone as the JIT does.