javascript - Javascript 中有没有一种方法可以为浏览器回流计时?

标签 javascript performance dom webkit reflow

我需要能够对基于 webkit 的浏览器的特定构建进行基准测试,并测量执行某些操作(如 DOM 操作、内存限制等)所需的时间长度。

下面我有一个测试记录了同时加载 10 个相当重的 PNG 图形所花费的时间。在代码中,我需要能够计算完成加载所需的时间。我试过设置 动态图像对象上的 onLoad 函数以产生以毫秒为单位的时间。然而,如下图所示,它给出的读数不准确,因为它给出的读数很小,因为它只记录负载的数据传输部分,然后当图片可见 - 以蓝色循环,这是浏览器重排周期

我可以使用 webkit 中的某些事件来记录浏览器何时完成回流,以便我可以对其进行基准测试?我必须能够以毫秒为单位记录时间在代码中,因为我正在测试的 webkit 构建没有开发人员工具。我能够观察到 Chrome 的差异,但两个构建之间的性能差异很大,我需要能够准确地量化它以进行比较。

image benchmark

最佳答案

如果您使用的是 jQuery,您可以尝试记录 document ready 之间的时间和 window load ,这会给你一个近似值。

(function(){
    var start, end;

    $(document).ready(function(){
         start = new Date()    
    });
    $(window).load(function(){
         end = new Date();
         console.log(end.getTime() - start.getTime());
    });

}());

编辑:

你看过Browserscope reflow timer了吗? ?基本上,它会检查浏览器在更改 dom 后需要多长时间才能将控制权返回给 JavaScript 引擎。根据该页面,它应该可以在任何浏览器中运行,尽管我还没有亲自测试过。或许您可以调整测试期间运行的代码,以便为页面中的回流计时。

关于javascript - Javascript 中有没有一种方法可以为浏览器回流计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10787210/

相关文章:

c++ - 在微不足道的键的情况下,使用 map 而不是 unordered_map 有什么优势吗?

javascript - 如何创建 BODY 背景图片幻灯片?

javascript - 使用 Django 开发服务器时 HTML5 视频元素不可搜索

javascript - 通过匿名函数分配鼠标悬停时如何传递局部变量?

java - fork /加入 : optimal threads count

javascript - 为什么 getComputedStyle 在元素创建后立即为像素值返回 'auto'?

javascript - Mootools - 同时进行补间或变形效果

c++ - 使用 C++(希望是 WMI?)提取 GPU 信息

jquery - 将javascript动态内容加载到其中后获取div的高度

java - 如何获取 Xpath 表达式的子树?