Upcoming Frozen Goodness

Folks, we have a Nexus One. We also have Froyo. In fact, we have the two mixed together in the most delicious frozen-yogurty Android 2.2 kind of way you can imagine.

Not much has been officially released by Google about Android 2.2 - probably less than any other release to date. We all have a hunch about some new features but Google wouldn't officially confirm or deny any of them, other than the one about Flash 10.1.

Froyo 2.2 Performance

Today, we would like to point out the results of some speed tests we've been running on Froyo, using a tool called Linpack.

These results are so impressive, most likely due to the introduction of the long awaited JIT compilation into the kernel, that we felt they deserved immediate attention.

Linpack

Linpack for Android was specifically created to test the performance of Dalvik VM which, in short, is the heart and the brains of Android.

The benchmark calculates how fast your phone can operate, which can then be used to compare various phone models' relative performance. Linpack allows users to publish these results to its online tracker, but we'll talk about that a bit later.

Here's a brief introduction to Linpack by the authors themselves, with interesting parts bolded:

The LINPACK Benchmarks are a measure of a system’s floating point computing power. Introduced by Jack Dongarra, they measure how fast a computer solves a dense N by N system of linear equations Ax = b, which is a common task in engineering. The solution is obtained by Gaussian elimination with partial pivoting, with 2/3*N3 + 2*N2 floating point operations. The result is reported in Millions of FLoating-point Operations Per Second (MFLOP/s, sometimes simply called FLOPS).

This test is more a reflection of the state of the Android Dalvik Virtual Machine than of the floating point performance of the underlying processor. Software written for an Android device is written using Java code that the Dalvik VM interprets at run time.

What is the purpose of this app? This is a simple benchmark test to show performance relative to other phones for a standard calculation. Linpack has been used for years on all types of computers, with a version used to rate the TOP500 computers in the world.

What speed is better?A higher number is better.

Does having faster speed improve the android phones or what? Yes, it should. The Dalvik VM has a huge impact on the Linpack number. A better number on the same device would indicate that a new version update has improved performance. Or it could show that something has gone terribly wrong if the number goes down.

But enough about Linpack - let's take a look at how Froyo performs.

Linpack Scores

Just so you have an idea of the kind of scores you can expect from the benchmark, let me list a few sample numbers:

Froyo Linpack Score

Think about this for a second. 37.6, compared to 6.5-7 - that's about a 450% speed improvement.

Conclusion

Things are starting to finally come together. Flash and huge performance gains, all in the same release. Flash is CPU hungry, so Android makes everything about the environment more efficient.

Do you see it? Adobe wasn't giving Apple what they needed, and Apple wasn't giving Adobe, well, anything.

But Google thought of the problem outside the box, like the ingenious engineers to the core that they are and made Android so much faster than it could finally run full Flash without a hitch.

Oh yeah, the phone is indeed noticeably faster.

Some of you (like Cyanogen and Uhhhh) pointed out that JIT compilation only helps programs that are not compiled to native code, which Flash and some video codecs/drivers seem to be. Thank you for this clarification.

While real-life improvements will most certainly not be 450% across the board, we still expect the N1 and even Flash to benefit from JIT because, as other programs become more efficient, more CPU will be available to such natively compiled programs.

These mysterious numbers from the Linpack Top 10 don't look so fake anymore now, do they?

Yeah, sorry for the confusion - didn't have the N1 image handy, so had to go with Hero only.

Not sure why your N1 is so slow, perhaps it's running a bunch of stuff in the background?

Brantyr

Run the test again and again, takes a few runs to get everything cached for maximum speed. Putting it into aeroplane mode helps make sure the CPU isn't interrupted to respond to network traffic as well.

Artem, is there some kind of limitation on a depth of the thread here? I wanted to reply to your image below, but it has no "Reply" link to me.
Anyway, I rebooted my N1 phone and measured MFLOPS again. At first it gave me even less (about 4), but the next moment I measured it again and got 6 MFLOPS. So, it wary greatly, not sure - why.
And yes, I have 3 security apps running in the background (Lockout, Wave Secure, and Mobile Defence) mainly because I couldn't choose one and trying to evaluate them.

Salman Hasan

My nexus one reads 6.8 MFLOPS. I Have not switched to airplane mode or anything. All I do is I use ES File Explorer and use the task manager to kill Applications; I have about 106 MB free on my RAM

Harsha S

Did U try 2.2 on HTC Hero. If not why not..? Try porting it to HTC Hero or Leak that ROM to some Devs..?? Would be a nice feeling to here that it runs on Hero too with higher MFLOPs.. what say..?

Wow awesome testing. Will link to this post with a front page article tomorrow! Thanks.

Sachin

if this is true i will sell my iPhone on ebay

piprog

I would probably first compare apples to apples. Android is a Java platform, while iPhone OS is native. This current improvement most probably only means that Android performance was up until now so terrible, that such an improvement was possible (although respect to the engineers achieving it!), and is now approaching iPhone performance (from the rear, I suppose).

JJJ

What are you smoking piprog...??? I've got the latest iPod Touch and an HTC Incredible (do you even own an Android device?). I used to have a WinMo phone (Samsung Omnia) and I liked using the iPod Touch for email and browsing instead of my phone. However, now that I have the Incredible I use it for email and browsing since it's faster and does a better job than the iPod Touch...and that's with Android 2.1.

piprog

hi JJJ, the Incredible is state of the art, no arguments about that. Will be interesting how iPhone 4 with matching cpu and with the new iPhone OS 4 will stack up (performance wise; no chance feature wise, though), but it is true that now there is at least one Android phone that is a real contender, which is good for both platforms, I'd say :-)

Jimlad

lol piprog, apple os was designed for the hardware, considering that the iPhone has it's bollocks cut off to make it appear faster then it is a mighty thing that android is so much more capable and faster t'boot :p

piprog

hi Jimlad, more capable: sure (v.s. non-geek usability;-). But faster? Is there any conclusive evidence out there? Of course Incredible & co now has a much faster processor, but on similar hardware e.g. Safari seems to be faster.

John Thompson

Flash may not be directly dependant on FP operations, but it is a significant increase that will see the speed of many apps increase.

Definitely great to see these behind the scene improvements coming with Froyo, bring on May 19th!

go back to sleep. you are just getting 2.1. eris will never got 2.2 since it's end of life is next month.

cece

Can you see if RAM usage also increased with JIT ??
Might be the problem with first gen phones with low RAM available.

Jason Porter

The way this test is done for MFLOPS is interesting for a "top of the stack" bench, but doesn't tell us much about the actual capability of the hardware.

If you get a moment, can you see if it's possible to check the kernel log for the BogoMIPS value? On most linux systems this is at /var/log/messages but it may be somewhere odd on an Android system. BogoMIPS is evaluated for the processor(s) each time the kernel is loaded, and it's part of the default output log. It's not a particularly meaningful number in terms of application performance, but it will give a degree of comparability for the hardware itself.

Frank

Downloaded linpack for my Nexus One and got MFLOPS 6.691

Richard

Great! If Android Police has a build of Android Froyo, can they spoil the other features of Android Froyo before it releases?

Grashalm

The Just in Time Compiler is awesome stuff. I always thought they have it already ;-)

Desktop Java was known to be really slow, but then came the JIT and benchmarks were somewhere near C++.

Not directly compiling to native code is great, since it enables performance optimizations even for already (bytecode) compiled applications. Also it can leverage all the target CPU options without recompling. (Mobile CPUs compared to desktop CPUs are pretty different)

Oscar

Maybe the increased performance of floating point operations are due to android finally being able to access the NEON and VFPv3 instrucions on the Snapdragon (called VeNum)? If that's the case, flash, video decoding and everything else will run better as well.

Rogerio

This is the iPHONE Killer!

zeagus

Oh, hey, there's this bridge I have for sale...

phutwo

These numbers are really low. Even if you don't use SIMD/Neon for floating point operation, you should be roughly 1 MFLOP per 1 MHertz. So for this phone it should say 1000 MFlop.

Jason Porter

This isn't a measure of the hardware's performance. This is a Java-specific benchmark used to measure the actual (observable) performance of the entire software stack, including the Dalvik VM. Remember, this is LinpackJava customized for Android, not Linpack in the traditional sense. If they were running real Linpack (in C) compiled for the underlying linux kernel, they'd be far closer to the hardware and these numbers would be much higher.

...and in any case it's simply not true that a 1MHertz processor can run linpack at 1mflop - even under the best of circumstances. Not all processors run 1 flop in 1 cycle (commonly, they don't) - some require extra latency between dependant read/writes, then there's the memory bandwidth and latency issues. It could also well be *faster* on a superscalar architecture with multiple ops in flight. Instruction mix can be a problem. In short, with a 1mhertz processor, you'd have an estimate for the order-of magnitude - but if you scored just 0.01Mflop on a 1MHertz machine, that might be odd, but not necessarily inconceivable.

So yeah, using a 1GHz cpu and scoring 6-7 mflop in java on a phone running a GUI and network stack etc. that's not designed or optimized for linpack... ...is entirely reasonable, and not necessarily indicative of other performance metrics.

phutwo

So I was quite interested in why the numbers are so low (JVM+JIT is close to C). In x86, a fully-pipelined FPU, you can get 90% of theoretical performance depending on cache speed/size (or a factor of 2 if you don't have fused multiply/add).

However, I stand corrected. Cortex A8 has an unpipelined floating point coprocessor! The VFP takes 18-21 cycles for an FMAC. So for a 1GHz processor, 40MFlops. So wow, if they are using the VFP in the JIT, they're hitting theoretical numbers and the interpreter/Java is free (bottleneck is fpu)!

xvigour

sorry but what you say is untrue, or I don't get your point.

a core i7 (and cores before) is 4 flops/cycle.
and a linpack can be 90+% efficient.

37/7 ~= 520% not 450 (maybe leave the maths to the CPU :P)! Any way you slice it it's a crazy increase in speed, even running a JIT hack on cyanogenmod my Magic only goes from 2 to 3.6 MFLOPS - a rather paltry 180% increase in comparison!!!

Unfortunately, we cannot discuss this at the moment. You guys will probably have to wait until Google publicly announces Froyo.

dj

yeah, I thought that might be the case. thanks anyway

Adam

It's worth pointing out that Flash is not exactly the CPU hog, it is rich content in general. Look at some of the HTML5 demos on the Nexus One and let me know how that goes. I'll give you a hint, choppy typically (same, worse really, for the apphole product). So yes Flash does use a large amount of CPU but it is more based on the content being pushed through the application and not the application itself. Now if they opened up hardware decode for Ogg and h.264 we'd see some wicked fast stuff (not to mention better battery)

Flash is just a SLOW, UGLY memory hog, and has no place in this world.

You can be assured that if flash shipped with AOSP or anyone's build of AOSP that I was interested in trying out, I would quite intentionally DELETE that component.

Adam

Nice job giving concrete examples. Further on the phone nothing is Native.

If by native you mean C or other compiled code without a VM then of course it will run faster. If I have an API to the hardware for decoding for example (something safari did but other did not until now on the Mac) I would run faster. The whole notion of a VM implies things will not run as fast, you don't get abstraction for free. This is the issue with Droid itself half the time. Is there room for improvement in flash, yes, is flash a pig compared to similar products for the web, find me a similar product and we can talk b/c right now HTML 5 in the majority of the browsers is a pig too.

We don't have any information confirming this but I think it would be silly to assume that one of the newest and most powerful phones will not be supporting the next version.

There are problems with HTC Sense and JIT that are currently present in custom ROMs but I'm sure HTC has been hard at work making the 2 compatible.

Paul

The CPU on the Hero is a dog, of course the number is lower. The 1 gig snapdragon is the fastest chip out there on a Android phone.

michael hill

How do I get my Droid to get a score like the one on the top 10. Right now I am averaging 4.5. I want 33. Please let me know. Thank u

Adam Nabi

Buy a new phone? How do I get my Fiat Punto to score like a Formula F1? Please let me know. Thank u

Noodles

Did you test to see if the new Nexus One will have a screen reader built in? Could a blind person use it without buying Steel or Standard Android, both of which don't allow users to text, email or surf the web?

Sean

Run the Sprint HTC Hero with an OC'ed 2.1 rom and JIT and you are looking at 4.8 MFLOPS

The boot time is faster, loading and unloading of apps is quicker. I mean it's not like going to a snapdragon cpu but sometimes just that little extra speed helps, like when opening cam to shoot something. The main thing is the OC'ed cpu though. Running nice at 767Mhz.

I cannot help but notice that the Droid did pretty darn well at about 34 MFLOPs for a 550+Mhz processor. I am using a Milestone but I reckon it should get about the same performance boost. Froyo!! Can't wait!!

Đức Thành

Hello, I'm from the futured. Here almost 5 years have passed, now we have phones with quad and octa-cores clocked at 2.6GHz and more to come soon. We have come so far. :DD

Joshua

So is the the thing that one of the exiting programmers said would "blow us away". I mean it's great and everything but i'm not sure it really has the "blow me away" factor considering that i really like the speed of my nexus one to begin with. I'm really interested in what's gonna be the best improvement

That sounds weird. Anyways, now m interested to know if its faster then iPhone 4?

Tetsuo

I am not sure if Iphone 4 has a similar benchmarking tool, it would be nice to do a comparison, but Froyo is breathing new life to my old HTC Hero.. ;) It is clocking 4.17 MFlops on it running a custom rom ;)

RoyBatty

I just found another benchmark for Java performance on Android: caffeinemark. The great thing is that you can see how Froyo improves the results for a wide range of devices/ROMs ... on this website :

I'm enjoying a great sense of nostalgia right now.
I mean, I wasn't there when all of this started. But by reading these articles I feel like I was, and I get excited all over again.
Nobody will probably ever read this, but — Thanks, AP
:]

Amazing and authentic info about reliable tech and latest gadgets. We read your blogs regularly and get inspired to create similar and qualitative content without being biased.
Gadget2Buy is the first of its kind; a portal dedicated to review gadgets in an unique way.
We, at Gadget2Buy, review every gadget after using minimum 7 days.
Here you will get Latest Mobile Unboxing, Latest Smartphone Review, Mobile Price Comparison, Smartphone Specifications and Features. Apart from Reviews and Comparison, we also provide Latest Technology & Smartphone News, User Reviews and other gadget news including Smartwatch, Laptops, Headphones, Earphones and Video Games.https://www.gadget2buy.com/