How to prevent CPU throttling after not poking at screen I'm trying to run some benchmarks on a Nexus 5 using GNURoot Debian. (The purpose of these benchmarks is to figure out which implementation strategy of an algorithm is the fastest on ARMv7, so the CPU needs to stay constantly clocked.)

I've set GNURoot Debian to take a wake lock and a wifi lock. In the system developer settings, I've prevented sleep when changing. (And I've connected a charger.) I've set the screen timeout to max (30 min).

Yet, when benchmark runs suggest that the phone still alternates between some kind of 100% performance, 80% performance and 75% performance modes.

Is there a way to tell the phone to stay in one of these modes consistently (when the screen is on and the charger connected)?

(I'm keeping the phone in a cool place and the phone isn't running hot, so I think this isn't thermal throttling. Also, the phone stays in the non-100% modes for longer than Raspberry Pi 3 stays in its 50% mode when doing presumably thermal throttling during the same benchmarks.)
If you have root access you can try to use an app like Device Control
to set the processors min frequency and a rather aggressive cpu governor.
explanation:
The cpu governor controls how quickly the cpu responds to alternating performance demands. If you set it to an aggressive mode like &quot;performance&quot; or &quot;interactive&quot; the cpu will try to stay in a high power state as long as needed whereas with a powersaving mode it will try to be in a low power state as long as possible.
With the cpu min frequency you can try to lock it to the fastest possible power mode.