Gil*_*ili 16 javascript google-chrome
在分析我的webapp时,我注意到我的服务器正在快速点亮,Chrome似乎是瓶颈.我启动了Chrome的"时间线"开发人员工具并获得了以下数字:
Total time: 523ms
Scripting: 369ms (70%)
Run Code Online (Sandbox Code Playgroud)
我还console.log(performance.now())从主Javascript文件中运行了一些,加载时间实际上接近700毫秒.这对于我正在渲染的内容(空表和2个按钮)非常令人震惊.
我通过深入研究"脚本"继续我的调查:
Evaluating jQuery-min.js: 33ms
Evaluating jQuery-UI-min.js: 50ms
Evaluating raphael-min.js: 29ms
Evaluating content.js: 41ms
Evaluating jQuery.js: 12ms
Evaluating content.js: 19ms
GC Event: 63 ms
Run Code Online (Sandbox Code Playgroud)
(我没有列出较小的脚本,但它们占了剩余的时间)我不知道该怎么做.
Gil*_*ili 15
对于所有这个问题的冷嘲热讽,我很高兴发现他们都错了.
我发现Chrome的分析器输出难以解释,所以我转向console.log(performance.now()).这让我发现在我调用一行代码之前,该页面需要1400毫秒才能加载Javascript文件!
这没有多大意义,所以重新访问Chrome的Javascript探查器工具.默认排序顺序Heavy (Bottom Up)没有显示任何有意义的内容,因此我切换到了Chart模式.这表明许多浏览器插件正在加载,并且运行时间比我预期的要长得多.所以我禁用了所有插件并重新加载了页面.你猜怎么着?加载时间降至147毫秒.
没错:浏览器插件负责90%的加载时间!
总结如下:
timeline工具不会报告正确的总时间.跳过漂亮的图表并使用以下工具......console.log(performance.now())验证基本假设.Chart 将为您提供Javascript执行的时间顺序概述.Tree (Top Down) 将允许您一次一个级别地钻取方法.我希望这有助于其他人.
PS:http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/上有一篇很好的文章,如果您想用本机API替换jQuery,这将有所帮助.
| 归档时间: |
|
| 查看次数: |
8374 次 |
| 最近记录: |