Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Processor count reliability

I'm making an Android game and the performance difference between single core phones such as Galaxy S and dual-core Galaxy S2 is comparable to night and day. Thus instead of making different versions for single cores and dual/quad-cores, I thought about using the processor count of the device to turn off and on certain graphical features.

But how reliable is getting the processor count? Do some single core phones have threading like Intel Hyperthreading which shows one core as two? Or are some dual-core phones a lot slower than the Galaxy S2?

like image 441
Esa Avatar asked Apr 10 '13 06:04

Esa


1 Answers

While I recognize your good intentions behind the idea of checking for cores and automatically adjusting settings, so the user doesn't have to adjust settings themselves & to improve performance, it won't work in practice.

This is because there are too many devices and corner cases to cover. For example:

  • Some multi-core devices will have core parking and might not be detected by whatever core detection you use.
  • Some single-core devices may or may not have hyperthreading, but won't display as multiple cores.
  • If the user has their phone on power-save mode, you'll still detect multiple cores, but not recognize that they're running at limited capacity.

I'm sure many other examples exist. The point is, it would probably be a nightmare for you to cover most/all of these cases in order to automatically adjust your app's settings, especially given a relatively simpler solution: ask the user what settings they want at the app's launch, and make it easy to adjust these settings at any time.

Sometimes it's better to just put a burden on the user's lap, especially if it takes little to no effort for them to do it, and proportionally waaay more effort for the developer to do it. Good luck!

like image 54
Murkantilism Avatar answered Sep 21 '22 03:09

Murkantilism