测量渲染时间的工具

Posted

技术标签:

【中文标题】测量渲染时间的工具【英文标题】:Tool to measure Render time 【发布时间】:2010-11-22 08:19:58 【问题描述】:

是否有工具可以测量页面上元素的实际渲染时间?我不是指资源的下载时间,而是浏览器渲染某些东西的实际时间。我知道这个时间会根据客户端机器上的因素而有所不同,但在了解渲染引擎需要一段时间加载时仍然非常方便。我想这应该是一个有用的实用程序,因为 Web 应用程序现在变得非常繁重。有什么想法吗?

【问题讨论】:

【参考方案1】:

Firebug for Firefox 已将其集成到“Net”-Tab 中。

需要火狐(我是用12.0版做的)配置修改,地址栏输入about:config然后搜索dom.send_after_paint_to_content

dom.send_after_paint_to_content 设置为真。

除了蓝色 (DOMContentLoaded) 和红色(加载)线之外,MozAfterPaint 然后在网络加载时间线中绘制为绿色的小垂直线。

【讨论】:

我在 FF 19.0.2 中设置了 dom.send_after_paint_to_content = true 但没有得到任何绿线......?!【参考方案2】:

您可以查看YSlow。

编辑:在我看来firebug 在网络面板中用蓝线和红线显示渲染时间。

【讨论】:

我查看了 YSlow。它为您提供了性能、加载时间和缓存统计信息的整体视图,但就我所见而言,没有关于特定元素渲染所需时间的信息。我错过了什么吗? 它只对一些要删除的 DOM 元素提出建议。我相信实际的渲染时间很大程度上取决于浏览器。【参考方案3】:

我一直在使用这个脚本来分析一些页面的渲染时间:

<script language="javascript">
<?

    $output = str_replace('=', 'A', base64_encode(file_get_contents('data.txt')));

    echo "\tCode = \"" . substr($output, 0, 512) . "\"";
    $size = strlen($output);
    for ($i = 512; $i < $size; $i += 512)
        echo "\n\t     + \"" . substr($output, $i, 512) . "\"";
    echo ";\n";

?>
    Data = "";
    Dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    j = Code.length -3;
    for (i = 0; i < j; i += 4) 
        Data += String.fromCharCode(((Dict.indexOf(Code.charAt(i    )) << 2) | (Dict.indexOf(Code.charAt(i + 1)) >> 4)) & 0xff);
        Data += String.fromCharCode(((Dict.indexOf(Code.charAt(i + 1)) << 4) | (Dict.indexOf(Code.charAt(i + 2)) >> 2)) & 0xff);
        Data += String.fromCharCode(((Dict.indexOf(Code.charAt(i + 2)) << 6) | (Dict.indexOf(Code.charAt(i + 3))     )) & 0xff);
    

    time_start = (new Date).valueOf()/1000;
    document.write(Data);
    time_elapsed = (new Date).valueOf()/1000 - time_start;

    alert(time_elapsed);

</script>

部分 php,部分 JavaScript。 data.txt 是包含要分析的 html 的文件。 在 IE 和 FF 上测试。

【讨论】:

PS:它不会考虑加载链接资源所需的时间,例如外部 .CSS 文件或图像,除非您对它们使用 mod_expire。也许您也想挂接 document.body.onload,但结果也会因您的连接速度和延迟而异。【参考方案4】:

我建议使用 YSlow。

它不仅测量页面中元素的性能时间,还分析您的页面设计,以建议您如何改进性能。 这是他们开发 Stack Overflow 时使用的工具之一。

Yahoo! YSlow

YSlow 分析网页并提出建议 提高他们绩效的方法 基于一套高规则 性能网页。 YSlow 是一个 Firefox 插件与 Firebug 网络开发工具。慢 根据三个之一对网页进行评分 预定义的规则集或用户定义的 规则集。它提供建议 提高页面的性能, 总结页面的组件, 显示有关页面的统计信息, 并提供性能工具 分析,包括 Smush.it™ 和 JSLint。

【讨论】:

如何使用 YSlow 查看页面上元素的性能时间?我试着找了,没找到……

以上是关于测量渲染时间的工具的主要内容,如果未能解决你的问题,请参考以下文章

使用 Chrome DevTools 对 HTML5 图形进行渲染测量

测量在 Xcode 中渲染 UIView 的 CPU 使用率

使用adb命令测量Android应用的启动时间

ArcGIS微课1000例0017:ArcGIS测量距离和面积工具的巧妙使用

ArcGIS微课1000例0017:ArcGIS测量距离和面积工具的巧妙使用

arcgis测量距离工具怎么添加