Performance

When I sat down with the 2X at CES, naturally the first thing we did was run our usual suite of benchmarking tools on the phone. The phone was running Android 2.2.1 then, and even though the numbers were good, LG hadn’t quite finalized the software and didn’t think those numbers were representative. We didn’t publish, but knew that performance was good.

Obviously now we don’t have such limitations, and won’t keep you waiting any longer to see how Tegra 2 compares to other phones we’ve benchmarked already. We’ve already talked about performance a bit in our initial preview from back when we got the 2X, but there’s obviously a lot more we have now.

Before we start that discussion however, we need to talk about multithreading in Android. Android itself already is multithreaded natively, in fact, that’s part of delivering speedy UI. The idea is to render the UI using one thread and distribute slow tasks into a background threads as necessary. In the best case multithreaded scenario on Android, the main thread communicates to child threads using a handler class, and hums along until they come back with results and messages. It’s nothing new from a UI perspective—keep the thread drawing the screen active and speedy while longer processes run in the background. The even better part is that multiprocessor smartphones can immediately take advantage of multiple cores and distribute threads appropriately with Android. That said, Android 3.x (Honeycomb) brings a much tighter focus on multithreading and bringing things like garbage collecting off of the first CPU and onto the second. In case you haven't figured it out by now, Android releases generally pair with and are tailored to a specific SoC. If you had to assign those, it'd look something like this: 2.0-2.1—TI OMAP3, 2.2—Qualcomm Snapdragon, 2.3—Samsung Hummingbird, 3.0—Tegra 2.

Back to the point however, the same caveats we saw with multithreading on the PC apply in the mobile space. Applications need to be developed with the expressed intent of being multithreaded to feel faster. The big question on everyone's mind is whether Android 2.2.x can take advantage of those multiple cores. Turns out, the answer is yes.

First off, we can check that Android 2.2.1 on the 2X is indeed seeing the two Cortex-A9 cores by checking dmesg, which thankfully is quite easy to do over adb shell after a fresh boot. Sure enough, inside we can see two cores being brought up during boot by the kernel:

<4>[  118.962880] CPU1: Booted secondary processor
<6>[  118.962989] Brought up 2 CPUs
<6>[  118.963003] SMP: Total of 2 processors activated (3997.69 BogoMIPS).
<7>[  118.963025] CPU0 attaching sched-domain:
<7>[  118.963036]  domain 0: span 0-1 level CPU
<7>[  118.963046]   groups: 0 1
<7>[  118.963063] CPU1 attaching sched-domain:
<7>[  118.963072]  domain 0: span 0-1 level CPU
<7>[  118.963079]   groups: 1 0
<6>[  118.986650] regulator: core version 0.5

The 2X runs the same 2.6.32.9 linux kernel common to all of Android 2.2.x, but in a different mode. Check out the first line of dmesg from the Nexus One:

<5>[ 0.000000] Linux version 2.6.32.9-27240-gbca5320 (android-build@apa26.mtv.corp.google.com) (gcc version 4.4.0 (GCC) ) #1 PREEMPT Tue Aug 10 16:42:38 PDT 2010

Compare that to the 2X:

<5>[ 0.000000] Linux version 2.6.32.9 (sp9pm_9@sp9pm2pl3) (gcc version 4.4.0 (GCC) ) #1 SMP PREEMPT Sun Jan 16 20:58:43 KST 2011

The major difference is the inclusion of “SMP” which shows definitively that Symmetric Multi-Processor support is enabled on the kernel, which means the entire platform can use both CPUs. PREEMPT of course shows that kernel preemption is enabled, which both have turned on. Again, having a kernel that supports multithreading isn’t going to magically make everything faster, but it lets applications with multiple threads automatically spread them out across multiple cores.

Though there are task managers on Android, seeing how many threads a given process has running isn’t quite as easy as it is on the desktop, however there still are ways of gauging multithreading. The two tools we have are both checking “dumpsys cpuinfo” from over adb shell, and simply looking at the historical CPU use reported in a monitoring program we use called System Panel which likely looks at the same thing.

The other interesting gem we can glean from the dmesg output are the clocks NVIDIA has set for most of the interesting bits of Tegra 2 in the 2X. There’s a section of output during boot which looks like the following:

<4>[  119.026337] ADJUSTED CLOCKS:
<4>[  119.026354] MC clock is set to 300000 KHz
<4>[  119.026365] EMC clock is set to 600000 KHz (DDR clock is at 300000 KHz)
<4>[  119.026373] PLLX0 clock is set to 1000000 KHz
<4>[  119.026379] PLLC0 clock is set to 600000 KHz
<4>[  119.026385] CPU clock is set to 1000000 KHz
<4>[  119.026391] System and AVP clock is set to 240000 KHz
<4>[  119.026400] GraphicsHost clock is set to 100000 KHz
<4>[  119.026408] 3D clock is set to 100000 KHz
<4>[  119.026415] 2D clock is set to 100000 KHz
<4>[  119.026423] Epp clock is set to 100000 KHz
<4>[  119.026430] Mpe clock is set to 100000 KHz
<4>[  119.026436] Vde clock is set to 240000 KHz

We can see the CPU set to 1 GHz, but the interesting bits are that LPDDR2 runs at 300 MHz (thus with DDR we get to 600 MHz), and the GPU is clocked at a relatively conservative 100 MHz, compared to the majority of PowerVR GPUs which run somewhere around 200 MHz. It turns out that AP20H lets the GPU clock up to 300 MHz under load as we'll discuss later. The other clocks are a bit more mysterious, Vde could be the Video Decode Engine, Mpe could be Media Processing Engine (which is odd since Tegra 2 uses the A9 FPU instead of MPE), the others are even less clear.

The other interesting bit is how RAM is allocated on the 2X—there’s 512 MB of it, of which 384 MB is accessible by applications and Android. 128 MB is dedicated entirely to the GPU. You can pull that directly out of some other dmesg trickery as well:

mem=383M@0M nvmem=128M@384M

The first 384 are for general RAM, the remaining 128 MB is NVIDIA memory which we can only assume is dedicated entirely to the GPU.

The Partners and the Landscape Performance: Tegra 2 Benchmarked
Comments Locked

75 Comments

View All Comments

  • matt b - Tuesday, February 8, 2011 - link

    Just curious because I've heard rumors that HP will use the Qualcomm chipset and I've also heard rumors that they will stick with Ti for their new tablets/phones. I just wondered if you know for sure since I know that you met with folks at CES. I hope that we all find out tomorrow at the HP event.
    Great review.
  • TareX - Wednesday, February 9, 2011 - link

    I'd like to see Tegra 2 on the Xoom compared to Tegra 2 on the Optimus 2X.

    Why? Well, simply put, the only Android version that seems to be optimized for dual-core is Honeycomb.
  • Dark Legion - Wednesday, February 9, 2011 - link

    Why is there no Incredible on 2.2? I could understand if you had both 2.1 and 2.2, like the Evo, but as it is now does not show the full/current performance.
  • Morke - Thursday, February 10, 2011 - link

    "It’s a strange dichotomy that LG sets up with this launcher scheme that divides “downloaded” apps from “system applications,” one that’s made on no other Android device I’ve ever seen but the Optimus One. The end result is that most of the stuff I want (you know, since I just installed it) is at the very last page or very bottom of the list, resulting in guaranteed scrolling every single time. If you’re a power user, just replace the launcher with something else entirely."

    You are not right there.
    First you can create additonal categories (aside from system applications and downloads) and move applications between them.
    Secondly you can rearrange the ordering of the applications inside a category (allowing you to have those on top which you access most frequently). You can also delete applications right away in this edit mode.

    There is a youtube video demonstrating this:
    http://www.youtube.com/watch?v=Dvvtl6pSNp8
    See time index starting with 4:21.

    Maybe you should correct your review on this?
  • Morke - Thursday, February 10, 2011 - link

    The correct youtube URL demonstrating application launcher management is actually
    http://www.youtube.com/watch?v=lDo-1-jwLko&fea...
  • brj_texas - Thursday, February 10, 2011 - link

    Anand,
    A question on the statement in the benchmarking section, "the SunSpider benchmark isn't explicitly multithreaded, although some of the tests within the benchmark will take advantage of more than one core. "

    My understanding was that all of the tests within sunspider are single-threaded, but a dual-core processor can run the javascript engine (and the sunspider tests) in a separate thread from the main browser thread when you call sunspider from a browser window.

    Can you clarify which tests support multi-threading in sunspider if that is in fact what you meant?

    On the topic of multi-threading, we've used moonbat, a multi-core variant of sunspider, to explicitly test multi-core performance with javascript code. I wonder if you have any other benchmarks under investigation that measure multi-core performance?
    Thanks

    -Brian
  • worldbfree4me - Saturday, February 12, 2011 - link

    Thanks for another thorough and in-depth analysis. But I have a question to ask,

    Should we upgrade (break our 2 year contract agreement for this phone) or ride out our contract?

    We trust and value your our opinion. Tom’s hardware does a GPU hierarchy chart every few months, can you do a phone hierarchy in the future?
  • lashton - Sunday, February 13, 2011 - link

    They have a really good idea and lead the market but it falls short because its not quite right
  • tnepres - Tuesday, April 5, 2011 - link

    I now own a optimus 2x. The first was dead on arrival, but this one is perfect. The LG software is innovative and pleasing to the eye. In various places they made real improvements to the UI that are just brilliant,ie. the ability to sort and categorize apps. At times the UI is not as fast as you would expect, especially when adding apps/widgets to one of the 7 pages. It seems LG generates a list of widgets for you, so you can see what apps support this mode, and that takes about a second. As I recall, on HTC devices you are just presented with a list of apps and u have to try and see if you can widget it.

    The LG keybord has a brilliant feature, you tab the side of the phone to move the cursor. Sadly in other respects the keyboard is lacking, ie. when you long-pres you do not get the alternates you might wish, such as numbers.

    The batterytime is superb, using the UI consumes much less power than on my desire.

    Copy/paste in the browser does not activate via long-pres, you have to hit menu button, but on the plus side its easier to use than what HTC made.

    During 2 days of very intensive use i have had 1 app (partially) crash and that was the marketplace. No other issues so far, its my verdict that the unstability issues are overrated.

    No problems with wifi using stock ISP (TDC) supplied router. (sagemcom)

    To engadget: How on earth (!!?!!?) can you state there is no use for dualcore. When browsing one loads flash the other the rest. Its so fast you cant believe it. Try loading www.ufc.com on a non dualcore phone and you get my drift.

    I do not hesitate to give the optimus 2x my warm recommendations.

    VERDICT: 9/10 (missing 4g)
  • Sannat - Thursday, May 12, 2011 - link

    gsmarena sound benchmark for optimus 2x isnt great...could it be a s/w issue...??

Log in

Don't have an account? Sign up now