- 加载优化:资源在加载时可做的性能优化
- 执行优化:资源在执行时可做的性能优化
- 渲染优化:资源在渲染时可做的性能优化
- 样式优化:样式在编码时可做的性能优化
- 脚本优化:脚本在编码时可做的性能优化
-
内存泄露指标确定
window 对象上新增的属性数量
Reflect.ownKeys等价于Object.keys- 在加载页面之前 Object.keys(window)
- 离开页面(路由跳转、页面关闭、后台APP关闭等),之前 Object.keys(window)
- 一些特殊函数,例如产生闭包的函数变量是否重新赋值为 null。
- 事件触发的次数及事件处理的时间
- 用 performance.now 判断当下 js 主线程是否堵塞,堵塞情况下事件触发也就一定会延迟或者等待。
- performance.now() 方法返回当前网页从 performance.timing.navigationStart 到当前时间之间的微秒数,其精度可达 一百万分之一秒。
- performance.now() 近似等于 Date.now(),但前者返回的是毫秒,后者返回的是微秒,后者精度比前者高 1000 倍。
- 页面 DOM 元素数量是否异常
- 深度优先遍历,获取 DOM 树的深度。这里可以根据不同场景不同页面来设定 DOM 树深度的最大阈值。超过最大阈值则平台进行预警。因为这意味着页面有动态新增 DOM 的事情发生。
- FPS,有明显长波段的不平稳。
- 重绘的次数。
