我正在使用React Profiler来提高我的应用程序的效率。通常会吐出这样的图形:
我很困惑,因为时间没有加在一起。例如,如果“ Shell”的总提交时间为0.3ms,那么“ Main”的总提交时间为“ 0.3ms的0.2ms”将是有意义的。但是事实并非如此。
这些时间确切地意味着什么,以及它们如何相加?
(注意:我已经读过"Introducing the React Profiler",但是从这个section看来,这种时间报告约定自该文章以来是新的。)
答案 0 :(得分:2)
第一个数字(0.2ms)是自身持续时间,第二个数字(0.3ms)是实际持续时间。自我持续时间通常是实际持续时间减去在孩子身上花费的时间。我注意到这些数字并不总是完美地相加,我想这可能是舍入的伪像,或者是因为有些时间花在了隐藏的工作上。例如,在您的情况下,命令行管理程序的实际时间为3.1毫秒,自我持续时间为0.3毫秒,这意味着两个子项(导航栏和主菜单)的总和为3.1毫秒-0.3毫秒或2.8毫秒。但是,我们看到导航栏没有被重新渲染,所以它是0ms,但是Main的实际持续时间仅为2.7ms,而不是2.8ms。在进行性能调整时,它在实践上不会产生任何影响,但是确实违反了预期。