May 5, 2012

Give me more power!


The alternative title is "Can I haz moar powa?".
The really recent presentation of the Samsung Galaxy S III just made me think about how smart phones are progressing.
First they had 1 core processors, with around 1Ghz, 512Mb-768Mb RAM, and a decent GPU. And that was ok as they need to run the phone's OS + user apps, and they need to do that smoothly. They also had a big wide-screen, around 4", with a decent resolution, so users could watch videos and play good-looking games.

But then phone companies started, from my point of view, a pretty stupid "race" about how powerful their phones are. And here we are, looking amazed at the SGS3, with those 4 cores at 1,4Ghz, with 1GB RAM and that 4.8" display with ridiculously huge resolution.

Why?

Let's start with the CPU. 4 cores, really? What for?
Yes, some people say that you can have 1 core for the OS, 1 core for the current app that you're running, 1 core for background apps...
Also, because there're 4 cores, you can turn some of them off to improve battery performance.
All those arguments are invalid. Let me tell you why.
I have an "old" HTC Desire HD, with a single-core CPU at 1Ghz and 768Mb RAM and I haven't seen yet a single app that would make my phone go slow. I haven't even found a combination of app's that would make my phone run slow.
Let me tell you what apps am I running!

Background (always running): 

  •   Advanced Task Manager
  •   BeautifulWidgets
  •   Simple Calendar (calendar widget with GCalendar integration)
  •   Twitter
  •   gReader
  •   WhatsApp
  •   Steam
  •   Gmail
  •   Spotify

Foreground: 

  •   Case 1: Opera (with flash plugin loaded). Runs fine.
  •   Case 2: Shazam. Runs fine.
  •   Case 3: OsmosHD or Spirit (both GPU-intensive games, HD graphics). Runs fine.
  •   Case 4: VLC with a HD-quality movie. Runs fine.

So, the "you need more cores for better performance" argument is pretty much invalid.
The "turning cores off improves battery performance" is a valid argument, but not in the way you'd think. If you open "Battery statistics" (in any Android OS) you'll see that "CPU usage while phone is idle" is around 20%-30% of the total usage. So, let me do the maths for you:

In a perfect universe, turning off 3 out of 4 cores of you phone's CPU will save 75% of the battery usage from the CPU.
Your CPU is using 20%-30% of the battery while idle.
So, we have a 75% of 20%-30% of the battery usage. That gives us 15%-22,5% CPU usage while the phone is idle.
Or, 5%-7.5% battery usage reduction.

Yeah, that 7.5% (max) is worth the around 300$+ extra you pay. (Irony, if you didn't notice it)

Let's go with the RAM. As I said, my phone has 768Mb RAM. Im on Cyanogenmod 7.1, and running all the apps I said I don't even have to worry about how much RAM is left, because everything works fine and smoothly. Can you tell me a single app that would require a huge amount of RAM?

Office apps: No, as they don't even run on phones. I mean, yes, there's a WIP-LibreOffice port for Android, but just imagine writing your 30-pages homework in your phone. Wouldn't that be easier on a PC? Just because of the keyboard!

Design apps: No, as they aren't even usable on a phone. Imagine working with Photoshop or AutoCAD with your phone!

Heavy-load apps: Have you used BOINC? Imagine running a BOINC client on your phone. I guess that those 4 cores you get with the SGS3 will be helpful, but what about the battery usage? You just killed one of your arguments! Also, your BOINC-stats would suck! I'd do more with my i7 for an hour than what you'd do for a day.

Heavy-load games: Let's say you get a GTA IV working copy on your phone. With all those good-looking 3D graphics and that realism. How would you play it? Do I have to remind you that the only controls on your phone are on the display (HUD)? Playing GTA IV with a PS3 gamepad is good enough, but I have the feeling that a few more buttons won't hurt me; playing GTA IV on the phone, with HUD-only controls is just brain-hurting yourself. What I'm trying to say is that all that GPU power that you want on your phone is useless, as you won't be able to play any games that require more than 2 pads/buttons at the same time.

Last one: the screen. You see, at the very beginning phones were huge, because we still hadn't the technology to make them smaller. After a while, phones became smaller, first color-screen show up, first games-oriented-phones show up, etc...

Then we got to the really smart phones era. And after that we came to the ridiculously-huge smart phones era (aka, current days). Do we really need 5+" screens? What for? Watching movies? Wouldn't that be easier, and more practical, on a PC/TV?

And even after all that stuff I just said and that probably more than one person thought, here we are, looking how big companies race for nothing.

I'm just wondering how far that race will go on. Are we going to see 32-core phones?

Think that I'm wrong? Please, prove me wrong in the comments section.