I have created an application that compare the android phone cpu speed by running the same tasks on multiple phones. I noticed that on the HTC ONE X it becomes much slower if I turn off the screen while it does not change when doing the same thing on the other phone. In the program I put the task in a service and running in a separate thread with priority set to be the highest value 10.
I tried to use the partial wake lock to keep the cpu running when screen is off. But it doesn't make any difference in terms of the speed.
I understand that different OS/UI (HTC sense for example) has its own power management strategy. But I am wondering if there is any way to overcome it without rooting your phone, means keep cpu running in 100% clock rate?
Updates: recent experiments show that when screen is off, One X (with ICS) will reduce its cpu frequency and disable the multi-core functionality, the Galaxy Nexus (with ICS) will reduce about 25% performance, Nexus 7 will reduce about 25% performance most of the time (occasionally it can run at the highest speed while screen is off).