The chrome perf team is leading an effort to optimize for battery (on top of optimize for speed, optimize for memory and optimize for size).
Out of all these dimensions, "battery" is certainly the trickier and harder to measure, and the trade-offs are not fully deterministic.
We're in early stages, but in telemetry there's already a few metrics for power (where HW/SW exposes it), and we're also adding 'derived' metrics.
This thread hit the nail in the head ;) but just to make it explicit. There are two sides of it:
1) reducing overall power consumption: that's a no brainer, we must do it, period. :) Remove All The Busy Loops!! of course, there are no low hanging fruits here... but in general, making chrome more efficient, say, faster rasterization, more efficient parsing, etc.., will help..
2) "speculative optimizations" / "elastic adaptation": last year, we've introduced "memory size" in a few places, like cache sizes... we used to have buffers with "one size fits all", which were not a good fit when we had to scale from 512MB small android devices all the way to huge desktops with multiple GB available. Chrome's usage is also fairly different in such environments, and so should be the optimizations we have in place... We also hooked up "memory pressure signals", so some of these speculative buffers can be flushed when needed.
We haven't done anything about "battery" yet, but there seems to be a good opportunity here (separate discussion on-going with the network team).
Whilst I fully agree with Scott, we should never waste anything and should aim for a 100% hit-ratio on all caches / speculative fetches / etc..., the reality is that the boolean decision to pre-fetch is based on a series of heuristics, like Antoine said.
One of the signals to take into account when deciding such speculative tasks is, potentially, battery level: the less battery we have available, the higher these thresholds should be to kick in the speculative task...
These efforts aren't mutually exclusive: we can keep improving our "hit ratio" whilst tweaking the battery level curve.
Thanks,
Marcus