If you’re drenched in the hacking and development scene, then you already know what JIT is or does. While I can’t put my finger on any specifics (because it’s stuff that – at my level of (non)expertise – goes way over my head) let’s just say that it gives you a tremendous boost of speed that Android’s never enjoyed before.
Ian Douglas, a developer at Armor Games, got his hands on a Nexus One that appears to be equipped with Android 2.2 (courtesy of none other than Adobe) and he’s pretty confident that the build of Android he’s running is equipped with a pretty stable implementation of the just-in-time compiler.
Normally, Linpack benchmarks (for which you can find an app on the market) would net him 6-7 MFLOPS on his Nexus One with stock Android 2.1 (and a bit higher with CyanogenMod versions), but the beta release of Android 2.2 he’s running pushes him close to 40 MFLOPS with operations being executed in less than 2-tenths of a second.
Astonishing, is all I can say. I use the Linpack benchmark myself on my rooted G1 with a JIT-enabled rom (HTCClay’s latest CM5-based SuperBad, for those curious) and I can tell you that – along with improved benchmark scores – it does provide some awesome real world performance enhancements in my case. Normally my G1 would huff and puff at 1.8 MFLOPS on stock Android 1.6, and around 2.2 MFLOPS with an older non-JIT-based 1.6 rom. With HTCClay’s rom with JIT enabled, I am pushing 3.5 MFLOPS average, and getting bumped up to 4.5 after an overclock to 710mhz. Even before the overclock, my G1 is running Android 2.1 noticeably faster than it’s ever run 1.0, 1.1, 1.5, or 1.6.
There’s no doubt that JIT does make a difference, and it appears Google’s embracing this (certain Google engineers are deeply rooted into the mod scene and bounces ideas off of developers like Cyanogen) and is implementing a stable version of the compiler for the Dalvik virtual machine. None of this is confirmed yet, but there will be a session specifically for JIT with Android at next week’s Google I/O conference, and hopefully we can get 100% confirmation that JIT and Android 2.2 have been married for an insanely effective performance boost on any Android handset that will run it.
[via Android Police]
Great. I hope the it will be very noticable in real world usage.
Wow……great performance!
It’d be pretty interesting if there was an official implementation of the Dalvik VM with JIT. I’d assume Google would have worked out all the bugs and it would actually work properly.
As it stands, community-built JIT gives impressive speed but was also a completely unstable waste of time for me.
Yea, Jamie, the community-built compiler is really a hit or miss for some. Luckily, I’ve enjoyed an unheard of 710mhz overclock with JIT AND swap for the past few days now and have not gotten a reboot or panic. I don’t want to jinx myself, but I’m hoping it can hold me over until I get the EVO this June.
Awesome news! This is the reason why Android is always the best choice. Even after two years, the G1 gets a performance improvement!
nice to see the droid’s mflop number is right up there with the N1’s. seems like the 2nd gen phones are gonna handle updates for awhile. with the addition of apps2sd and flash froyo is gonna be a hit.
To help out with those that might wonder about the tech details…. JIT is key to the normal java world. To put it simply it taking the java byte codes and compiling them directly to native code. So you cut out the interpretation of byte codes. There’s other advantages for example how the java hotspot compiler determines the best way to compile the code based on metrics of the actual running application. It swaps out the byte code in the “hotspots” with native code. This way it sometimes comes up with more optimized code than you would have done by hand in c or c++. The details on how they implement this will be interesting.
Check out the GreeneComputing site for further benchmarks. Someone already has pushed a N1 with Froyo up to 40.099
Whether or not we get 6x speed increases (doubtdul), there will still be a huge speed increase without any new hardware. Imagine if you PC benchmarks increased 6x with a software update.
can’t wait for this!!!
I can’t wait to put Android 2.2 on my N1.
And just wait til the Droid Incredible and EVO 4G start crying about how long it takes Verizon/Sprint/HTC to come out with Android 2.2. Nexus One rules!
@ phil
ohhhhhhhhhhhhhhhhhhhhh
so i am just wondering , why didn’t do this before? if it is a standard procedure on java systems, and now that you’ve mentioned it i have heard of it before
and it makes sense, since having java interpret the bytecodes and run them with the jvm is way slower than using the hw directly
the reason for the jvm is to have platform independance but it sacrifices performance, the thing is, with android is a custom job, so they were able to pull this
god i hope they can get the incredible updated with 2.2 fast
Lets just hope that apple hasn’t put a patent on either “2.2” or “FROYO” :)
I Cant wait for 2.2. I am just hoping that apps2sd also comes with 2.2. Android just keeps getting better.
@Quentyn
Are you really running at 710 Mhz with Jit AND stable?
I found that my phone will boot up until 729, but it suffers from reboots whenever the phone gets under too much stress (browser, etc), and I also suffer from HUGE battery drain. 652 is stable for me. I’ve also found that jit causes more force closes so I never use it (plus cyanogen himself recommends not using it). I don’t use swap because of my slow class 2 sdcard, but I will try your combo and see if it helps! I’m running CM5-.0.7-test3, which is the unthemed version of superbad.
my EVO is gonna jiz on every other phone out there with 2.2 and JIT when it gets it
Interesting, but I would also love to see a bench with a JIT implementing Jazelle
http://en.wikipedia.org/wiki/ARM_architecture#Thumb_Execution_Environment_.28ThumbEE.29
Because all Android phone got Jazelle enabled … well, Iphones too by the way. But because of NDA you have to sign to ARM few people use the power of this cool feature.
Rgs,
TM