Reactjs React Profiler:计时意味着什么?

Reactjs React Profiler:计时意味着什么?,reactjs,profiling,Reactjs,Profiling,我正在使用react profiler使我的应用程序更高效。它通常会弹出如下图形: 我很困惑,因为时间安排不合理。例如,如果“Shell”的总提交时间是0.3ms,那么“Main”是“0.2ms/0.3ms”,这是有意义的,但事实并非如此 这些时间安排究竟意味着什么?它们加起来又如何 (注意:我已经读过了,但从这篇文章中可以看出,这种时间报告惯例自那篇文章以来是新的。)第一个数字(0.2ms)是自我持续时间,第二个数字(0.3ms)是实际持续时间。大多数情况下,自我持续时间是实际持续时间减去花

我正在使用react profiler使我的应用程序更高效。它通常会弹出如下图形:

我很困惑,因为时间安排不合理。例如,如果“Shell”的总提交时间是0.3ms,那么“Main”是“0.2ms/0.3ms”,这是有意义的,但事实并非如此

这些时间安排究竟意味着什么?它们加起来又如何


(注意:我已经读过了,但从这篇文章中可以看出,这种时间报告惯例自那篇文章以来是新的。)

第一个数字(0.2ms)是自我持续时间,第二个数字(0.3ms)是实际持续时间。大多数情况下,自我持续时间是实际持续时间减去花在孩子身上的时间。我注意到这些数字的总和并不总是完美的,我猜这可能是一个舍入工件,或者是因为一些时间花在了隐藏的工作上。例如,在您的示例中,Shell的实际时间为3.1ms,自持续时间为0.3ms,这意味着两个子项(Navbar和Main)的总和应为3.1ms-0.3ms,或2.8ms。但是,我们看到导航栏没有被重新渲染,所以它是0毫秒,但是Main的实际持续时间只有2.7毫秒,而不是2.8毫秒。当您进行性能调优时,它在实际操作中不会产生任何影响,但它确实有点违反预期

我认为你对四舍五入做了一个很好的猜测。不过,我想先确认一下这个猜测,然后再接受它作为答案。