谷歌灯塔如何计算 javascript 评估时间以及为什么它在不同环境下的相同脚本有很大差异

问题描述

我正在努力提高网站的性能得分。在 Reduce JavaScript execution time 下的 diagnostics 中运行灯塔时,我发现我的一些 js 脚本的时间很长 Script Evaluation

如果我在不同的环境中运行灯塔,我得到 different evaluation time for the same scripts,这种差异非常大,例如对于一个脚本,它从 1700 毫秒变为 100 毫秒,

我想了解 how lighthouse calculates the evaluation time,所以我可以努力减少它。

那些js文件比其他评估时间较短的文件相对较小,我无法理解。如果重要的话,在分析中我可以看到同一个脚本的执行时间是 45 毫秒。

PS-我知道脚本执行和评估是不同的

感谢任何帮助,将不胜感激。

解决方法

Lighthouse 分数在不同的测试和设备中总是不同的,这取决于解析文件和执行的时间、使用多少内存以及网络成本。这些细节由官员妥善记录。

评估时间是解析和执行发生的地方。

如果你有你提到的小文件,你可以检查是否有任何渲染阻塞代码或其他通常需要很长时间的同步操作。

即使您的分析测试也会导致执行的时间复杂度很小,也许这可能是网络成本或内存?您可以通过网络选项卡验证它或检查它可以分配多少内存。

脚本评估实际上是页面在旅途中运行所需的脚本。

因此,最好的方法是确定您的页面在初始加载时运行所需的脚本,并仅优化脚本的那些部分。如果它包括同步操作,那么它们可能是主要问题。

需要注意的一点是,如果您有未使用的代码,则不会对其进行评估,因此您可以仅过滤所需的代码,而不必担心未使用的代码。

无论如何,灯塔分数在大多数情况下确实是不可预测的。

您可以查看以下来源以获取更多详细信息:

Boot Up time for script

About performance scoring overall