React Profiler-React性能审查工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Profiler-React性能审查工具相关的知识,希望对你有一定的参考价值。

参考技术A React Profiler 是 React 官方提供的性能审查工具,本文只介绍笔者的使用心得,详细的使用手册请移步官网文档。

Note:react-dom 16.5+ 在 DEV 模式下才支持 Profiling,同时生产环境下也可以通过一个 profiling bundle react-dom/profiling 来支持。请在 fb.me/react-profi… 上查看如何使用这个 bundle。

“Profiler” 的面板在刚开始的时候是空的。你可以点击 record 按钮来启动 profile:

不要通过 Profiler 定位非 Render 过程的性能瓶颈问题

通过 React Profiler,开发者可以查看组件 Render 过程耗时,但无法知晓提交阶段的耗时。

尽管 Profiler 面板中有 Committed at 字段,但这个字段是相对于录制开始时间,根本没有意义。

通过在 React v16 版本上进行实验,同时开启 Chrome 的 Performance 和 React Profiler 统计。

如下图,在 Performance 面板中,Reconciliation和Commit阶段耗时分别为 642ms 和 300ms,而 Profiler 面板中只显示了 642ms:

点击面板上的齿轮,然后勾选「Record why each component rendered while profiling.」,如下图:

然后点击面板中的虚拟 DOM 节点,右侧便会展示该组件重新 Render 的原因。

由于 React 的批量更新(Batch Update)机制,产生一次 Render 过程可能涉及到很多个组件的状态更新。那么如何定位是哪些组件状态更新导致的呢?

在 Profiler 面板左侧的虚拟 DOM 树结构中,从上到下审查每个发生了渲染的(不会灰色的)组件。

如果组件是由于 State 或 Hook 改变触发了 Render 过程,那它就是我们要找的组件,如下图:

Optimizing Performance React 官方文档,最好的教程, 利用好 React 的性能分析工具。

以上是关于React Profiler-React性能审查工具的主要内容,如果未能解决你的问题,请参考以下文章

SQL 服务器管理工​​作室审查脚本,如 MySQL Workbench

软工结对第一次作业

react性能优化

Android性能測试 一些适用于Android Studio的代码审查和性能測试工具

Java基础知识强化(用于自我巩固)以及审查

反应:设置审查[关闭]