The power of smart phone hardware improves each generation, some of the benefits are obvious. Screen sizes become larger and sharper, improving view-ability. Batteries become bigger, making your phone last longer between charges. Then there is the CPU, or rather the plural, CPUs. Since the number of cores present in phone CPU has now jumped to 4 cores.
Many critics of quad-core phone do not see the benefits, often citing a number of drawbacks that outweigh any benefits. Critics state that the main reason for quad-cores phones is for playing games, especially complex 3D titles that take advantage of multiple cores, but multiple cores would also suck out the battery life.
That’s not entirely true.
3D games do perform better under quad-core, especially development houses who have ported their graphics engines over from the PC/console, along with their multi-processing optimizations. However, there are many other application genres that can may use of those 4 cores.
But before listing the applications, lets put to rest of of the myths, that battery life has been greatly reduced in quad-core phones. In a single core processing environment, to perform a given task in a timely manner, then CPU has to be driven to higher frequency and spend more time processing. Both these attributes drain the battery. However, a multiple core processor can split the task into smaller chunks of work and execute each one on a separate core . Since all the chunks of work are done at the same time, the elapsed time taken to complete the task is lower.
Lets use a cleaning example to illustrate this. Imagine two houses, each with 4 rooms to clean. They have to be cleaned once a day within an hour. On average, each room takes about 30 mins to clean with a standard vacuum cleaner. The first house only has one cleaner, so each room has to be cleaned sequentially. However, since each room takes 30 mins, and there are 4 rooms, then it would take 2 hours in total. This is not good, in order to meet the 1 hour deadline, each room needs to be completed within 15 mins. So the vacuum cleaner has to beefed up, a much bigger motor one needs to be installed, which also requires much more power to run.
The second house has 4 vacuum cleaners and operators. So the task of cleaning the whole house, can be split into 4 separate tasks of cleaning one room. Since there are 4 cleaners, all the 4 rooms can be cleaned at the same time. As each room takes 30 mins, and there are all done together, the elapsed time taken is 30 mins. This is half the time taken than the house with a single cleaner, but more important, standard vacuum cleaners were used. Although power had to be provided for all 4 cleaners, they did not need big power hungry motors, and power was needed for only 30 mins. Overall the power consumption, i.e. battery drain, would be similar.
However, not all tasks can be broken into smaller tasks, and thus benefit from multi-cores, but some everyday applications do take advantage.
In the past, the network connection was the biggest hurdle to a good web experience. It did not matter how powerful your phone was, as most of the delay was actually downloading the web pages to your phone. However, network speeds have greatly improved now. Many modern browsers such as Chrome and Firefox are multithreaded, so they can and do use all the CPU together. For example, tabs use a separate processor, so loading a page in the background will not degrade the performance of the current page you are viewing.
There are a number of applications on smartphones that are intrinsically very demanding on the processor, but can also be broken in sub-tasks for multiple cores
Popular applications like instagram perform complex mathematics to modify images. These calculations can easily be spread each core, significantly speeds up the various special effects. This becomes more important as the size of the images go up in pixel count. That is, the higher the resolution of the picture (i.e. HD), the more calculations are needed. So quad-cores offer a huge advantage in this area.
For picture and video encoding, typically this is done by dedicated hardware, and is known as hardware encoding/decoding. However, not all formats are supported, so software decoding is sometimes required. MX Pro an Android application, states that the decoding speed is 70% faster over single core. (EDITOR why not 400%)
Android does not restrict what runs in the background. So there are many applications that create special background tasks called services. These services perform a variety of functions, such as checking email, updating news feeds, fetching auction results and much more. If you are performing and activity that is CPU intensive, and especially if you only have a single CPU, then these services will also be slowed down or impact the performance of the application you are currently running.
The jump from dual-cores to multi-cores was made on the desktop years ago. However, it took time for software developers to fully take advantage of them. Linux, was is the OS on Android phones, has been implementing multi-processing code for a number of years. So moving to more CPU’s on Android, is not a major issue for developers who have already used these environments on their desktop counterparts.