一次有效的性能排查,应该从可重复的现象开始,而不是从直觉开始。
先定义问题
“页面很慢”不是可验证的问题。更好的描述是:
- 首次进入详情页时,主线程有一段超过 300ms 的长任务;
- 列表超过 500 条后,筛选操作明显延迟;
- 只有低端移动设备可以稳定复现。
一次只验证一个假设
建立基线、改变一个变量、重新测量。即使假设错误,也能减少未知量。
performance.mark("filter:start");
const result = filterRows(rows, query);
performance.mark("filter:end");
performance.measure("filter", "filter:start", "filter:end");
工具的价值不只是给出答案,更重要的是把模糊感受转换成可以讨论的证据。