移动端性能测试怎么测React组件的渲染耗时?
我在开发一个 React 移动端列表页,感觉滑动有点卡,想测一下每个 Item 组件的渲染时间,但不知道怎么在真机上准确测量。试过用 performance.now() 包裹 render,但数据不太稳定。
下面是我简化后的组件代码:
const ListItem = ({ item }) => {
const start = performance.now();
// 模拟复杂计算
const processed = heavyProcess(item);
const end = performance.now();
console.log('Render time:', end - start);
return <div>{processed.title}</div>;
};
按照规范,你应该这么做:
1. 先安装react-devtools
2. 在代码里这样包装你的组件:
真机上记得用chrome://inspect调试,别直接用console.log。另外建议开启React的Concurrent Mode,能自动标记渲染耗时。
说到性能,其实列表卡顿大概率是没加key或者没做虚拟滚动,测完渲染时间后可以看看这两个优化点。我们项目上次遇到类似问题,加了React.memo之后直接起飞。
这方法在安卓和iOS上都实测可用,就是DevTools偶尔会抽风,习惯就好...