On mobile devices we want to use the least amount of power, so the device's battery will last as long as possible. Users will likely notice what browsers are better in this and prefer them.
- N900 - use this useful tool, run ././bq27220.sh -r
- # of wakeups/second, that prevent the CPU from sleeping. See powertop. Relevant in low CPU load. See Mobile/Powersaving/Wakeups
- CPU %. Relevant in high CPU load.
- Disk usage (tools: iostat, atop).
- Relevant config setting: browser.sessionstore.interval
- Simulate power usage via Intel's Application Energy Toolkit?
Different OSes have different application lifecycles. Depending on application states, we might want to do certain things. Information on different OSes is tracked here.
OS-level process control
The 'nuclear option': Use OS-level operations to make processes use low CPU % when they should. On Linux this can be done with SIG_STOP, SIG_CONT (see e.g. cpulimit). Note that we are **not** completely freezing the process, that would be too bug-prone.
Tracked in bug 568054
- Force plugins to use low CPU % (Flash etc.)
- Throttle all tabs when battery is low (kind of like laptops dim their monitors on low battery).
- User-controllable speed setting, to save power by throttling?
Availability: Probably Meego. Android lacks it in the Java API (but other signals are present, so perhaps it will be added), perhaps using the NDK it is possible though?
Benefits: Straightforward, simple to implement, guarantees the best results.
Status: Working proof of concept on desktop and on N900 for suspending and/or throttling the content process as desired.
- On Android, processes have a lifecycle. We currently pause the main thread - but no others - when we get OnPause.
- Should we do more in OnStop?
- Need to investigate other OSes