I personally prefer to manually set the frequency of the CPU, this way I can throttle as low as comfortable without worrying about the CPU draining power from tasks I don't actually need the extra CPU power.
My computer has a 6th gen Intel i5 processor from 2015 and it handles usual computing tasks such as writing, browsing the internet, basic photo editing, streaming video content, listening to music etc just fine at 500 MHz.
Laptop is dead silent with no fans spinning as a bonus, has saved me about 1 ~ 2 hours of battery life.
Changing CPU frequency on the fly is easy and can be done by using sysctl
On my computer:
$ sysctl -a | grep freq
machdep.dmi.processor-frequency = 2400 MHz
machdep.tsc_freq = 2496004000
machdep.cpu.frequency.target = 500
machdep.cpu.frequency.current = 500
machdep.cpu.frequency.available = 2401 2400 2300 2200 2000 1900 1700 1600 1400 1300 1100 1000 800 700 500 400
The value of frequency.target
is what you want to change. frequency.current
is just displaying the current frequency.
E.g. to set my CPU frequency to 800 MHz:
$ sysctl -w machdep.cpu.frequency.target=800
Note: the highest frequency here is 2400, frequency values ending with 1, 2401 in this case is referring to automatic CPU scaling done on a hardware level (on Intel CPUs, not sure about others) and it's the default value if Intel SpeedStep is enabled in BIOS.