I google this question but there is almost no discussion. So only very few apps really use more than one core?
2 Answers
It's a pretty subjective question, since no one really knows how many apps do or don't do any given thing. You'd have to carefully analyse each app to find out how much use it can make of multiple cores.
Likely, more apps than you realise are doing this. First off, Android makes it very simple for app authors to work in multiple threads, with helpers like AsyncTask
. App developers are encouraged to do most operations in background threads, such as loading bitmaps from storage, transferring data over the network, or long computations. Running those on a second core keeps the app more responsive while the operation's going on.
If the app does anything with GL (most graphics-heavy apps and almost all games do), then it's certainly using two cores. How much use it's making of that freedom to parallelise is different for each app, but again, it lets the app do long-running operations while still responding to you.
On top of this, even if the app you're using right now is only running in a single thread on one core, anything else Android is doing in the background will be running on another core, which again lets your app stay responsive. This might include activities like drawing the system UI, running background services from other apps to check your mail &c., features like "Smart Stay" on Samsung phones, listening for the "OK Google" hotword, and more.
So in short, while we can discuss how much use any given app makes of the power available to it, a sweeping statement like, "very few apps really use more than one core," sounds like the kind of thing an uninformed salesman would say to try to impress you.
-
+1 I'd say, given the fact that best practice is to use extra threads for just about everything in Android, plus OpenGL using all available cores for anything which uses that (most games, plus the OS) that it would be fairly hard to find an app which doesn't use multiple cores (and even then the OS would be).– user5506Commented Mar 31, 2014 at 12:21
-
-
Thanks. Is that for the programming part, as long as it is mult threading, then using 2 cores or 8 cores would be the same coding?– AnnieCommented Apr 1, 2014 at 2:26
-
@Annie It really depends on how the work is distributed among threads. Commented Apr 1, 2014 at 9:54
There is no central repository where in the apps that are uploaded in Play store or any other store for that matter are sorted into
- Apps that use the camera
- apps that use one core etc etc
This is because majority of android users do not care how many cores apps use!
Also due to restrictions on clock speed / computational power you can't actually do compute intensive stuff on android, there is CUDA for that, you still have to revert to desktops.
And it all depends on the developer really and we can't really say for sure if there are few apps for android that use multicore.
-
What restrictions on computational power? You can play GTA 3 on Android, and you can do face detection. Both of those are pretty compute intensive. Commented Apr 1, 2014 at 9:40
-
for compute intensive applications we use the mighty Nvidia GPU, Tesla K20 Specifications Processor clock 706 MHz cores: 2k Memory clock 2.6 GHz Memory size 5 GB Memory I/O 320-bit GDDR5 Memory configuration 20 pieces of 64M ×16 GDDR5 SDRAM single precision FLOPS: 3.52 Tflops Playing GTA3 is compute intensive? are you kidding me? Commented Apr 1, 2014 at 17:03