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 blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a6db8984-6c56-4e84-954b-7b0ffae8b461n%40chromium.org.