Hi,
We tested an intervention on Canary/Dev/Beta that reduces the frame rate by
half (e.g., from 60fps to 30fps) after 4 consecutive frames without pixel
changes. The frame rate returns to normal immediately upon pixel changes or
input events. For example:
let last = performance.now();
let c = () => {
window.requestAnimationFrame(c);
let now = performance.now();
console.log(now - last);
last = now;
}
c();
The c() function's invocation frequency halves after 4 calls due to the
lack of pixel updates. Note: As a result, a subsequent frame with pixel
updates may be delayed by up to 1 frame (but frame rate returns to normal
immediately after a frame with pixel updates).
This intervention significantly improves LCP, INP and CPU usage on Beta,
confirming our prior observation that no-op frames often occupy the main
thread during page load or input handling. To validate these results, we
need a 1% stable experiment (user behavior differs between pre-stable and
stable channels). Before proceeding, we'd appreciate feedback on potential
issues this experiment might cause. We will determine our next steps based
on input from this discussion.
Thanks,
François
[cc: Chen, Li and Zheng, Hong from Intel who proposed and implemented this
intervention]
--
You received this message because you are subscribed to the Google Groups
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a6db8984-6c56-4e84-954b-7b0ffae8b461n%40chromium.org.