在研究网页渲染优化时,我在许多流行网站上遇到了奇怪的渲染行为。帧渲染时间的很大一部分是没有任何操作的空白空间。Apple 促销页面的示例 https://i.stack.imgur.com/L00lb.png
在该时间范围内唯一运行的就是 GPU。我找不到这种行为的任何原因。这个问题背后的原因是什么?我如何改善项目中此类帧的渲染时间?
这是空闲时间,即浏览器等待 CPU 或 GPU 执行某些处理的时间。它显示在文档页面的饼图屏幕截图中如何使用时间轴工具 https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/timeline-tool.
我在官方文档中找不到任何好的解释,但我只是在其他地方找到了一些东西:
每个垂直条的透明区域对应于空闲时间,至少是页面部分的空闲时间。例如,假设您的第一帧需要 15 毫秒执行,下一帧需要 30 毫秒。常见的情况是帧与刷新率同步,在这种情况下,第二帧的渲染时间略长于 15 毫秒。此处,第 3 帧错过了“真实”硬件帧并在下一帧上渲染,因此,第二帧的长度实际上加倍了。
Source: 使用 Chrome DevTools 时间轴和配置文件提高 Web 应用程序性能 https://addyosmani.com/blog/performance-optimisation-with-timeline-profiles/
我会将这个 SO 线程传递给我认识的为 Google 编写文档的人。他们也许能够更好地涵盖这个主题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)