本文结构
- 系列文相关
- Performance面板概览
- RAIL模型
- 控制区
- FPS图表
- CPU图表
- Screenshots
- HEAP
- Frames
- FPS仪表工具
- Main
- 性能相关扩展
- 浏览器并发请求数
本文共计:2108字15图
预计阅读时间:6min10s
运行时性能
(运行时强调的是与页面加载性能相区分)performance面板概览
Response
:在100 毫秒
以内响应(例如从点按到绘制)Animation
:每秒生成 60 帧,每个帧的工作(从 JS 到绘制)完成时间小于 16 毫秒,达到人眼顺滑(例如滚动 拖动都是动画类型)(因为浏览器需要花费时间将新帧绘制到屏幕上,只有 10 毫秒
来执行代码)Idle
:利用空闲时间完成推迟的工作(要实现第一条 response 在 100ms 内响应,Main 主线程 JS 工作应该小于 50ms
,剩余的时间将主线程的控制从 js 返回给浏览器执行其像素管道、对用户输入作出反应等,因此最佳实践是将 js 的工作分成不大于 50 毫秒的块,如果用户开始交互,优先级最高的事项是响应用户。Load
:在 1000 毫秒
以内呈现内容(无需完整加载,启用渐进式渲染,将非必需的加载推迟到空闲时间段录制按钮
或者开始录制并刷新页面按钮
,可以在控制区下方得到全部性能分析结果shift
,滚动鼠标滚轮,可以上下W A S D
按键控制缩放移动Disable JavaScript samples
默认情况,在Main
主线程的火焰图中,会详细记录 js 函数之间的调用栈,可以开启此选项禁用调用栈记录Enable advanced paint instrumentation
启用高级绘图工具,可以在分析结果的Frames
中的每一帧的详细结果中看到Layer
选项卡,其中有选中帧的详细图层信息;也可以在Main
主线程火焰图中选中绿色的Paint
事件,在最底部详细信息的Paint Profile
选项卡中,看到详细的页面绘制过程分析Collect garbage
控制器最右的垃圾桶图标,是强制执行垃圾回收,对于监控内存比较有用RAIL
模型,帧率>=60 时,用户能体验的顺滑的网页FPS,CPU,NET
图表悬浮时,会展示出鼠标对应时间点的网页截屏,左右移动鼠标可以看到网页变化的重播效果JS Heap
相对应Frames
区域,鼠标悬浮/点击绿色方块,可以看到该特定帧的帧率和渲染耗时,当 FPS 低于 60,表明当前帧的渲染效率较低more -> more tools -> Rendering
或者 ctrl+shift+p -> rendering
打开Rendering
面板FPS meter
,即可看到的页面实时帧率Main
区域,可以看到主线程上事件的火焰图
Animation Frame Fired
事件,可以在最下方Summary
窗格查看触发动画事件的详细信息,点击Initiator
后的reveal
链接,会高亮到引起动画事件的事件不同浏览器的限制数
[1]
sample: https://masteringdevtools.com/
[2]
google developers 官方文档: https://developers.google.com/web/tools/chrome-devtools/
[3]
Mastering Chrome Developer Tools v2 课程: https://frontendmasters.com/courses/chrome-dev-tools-v2
[4]
系列文章: https://medium.com/@tomsu
[5]
Devtools脑图.png: https://i.loli.net/2019/04/19/5cb95639a9f73.png
[6]
Janky Animation demo :性能测试 demo: https://googlechrome.github.io/devtools-samples/jank/
[7]
RAIL 模型: https://developers.google.com/web/fundamentals/performance/rail
[8]
网页性能-性能模型/加载/渲染/审计/优化: https://developers.google.com/web/fundamentals/performance/why-performance-matters/
[9]
the-anatomy-of-a-frame - 一个帧的剖析: https://aerotwist.com/blog/the-anatomy-of-a-frame/
[10]
常见的时间线事件参考: https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/performance-reference
- END -