如何在PhantomJS中测量渲染时间?

麦可

据我了解,PhantomJS在page.open被调用时开始加载页面首先,它加载页面资源,然后呈现页面,然后调用open回调。

现在,我只想知道渲染时间(即没有资源加载时间)。我可以那样做吗?

Artjom B.

当我考虑渲染时间时,我正在考虑从已经建立的DOM和CSSDOM生成图像。我认为您无法从脚本中访问该脚本,但是可以通过访问PerformanceTiming对象window.performance.timing它具有多个定时,分别表示各种网络和JavaScript执行事件。

在您的情况下最有意义的指标是

console.log(page.evaluate(function(){
    var t = performance.timing;
    return t.domContentLoadedEventEnd - t.domContentLoadedEventStart;
}));

请注意,PerformanceTiming仅可从PhantomJS 2开始使用。

这是一个小脚本,用于打印可用数字并弄清楚它们:

console.log(JSON.stringify(page.evaluate(function(){
    function cloneObject(obj) {
        var clone = {};
        for(var i in obj) {
            if(typeof(obj[i])=="object" && obj[i] != null)
                clone[i] = cloneObject(obj[i]);
            else
                clone[i] = obj[i];
        }
        return clone;
    }
    return cloneObject(window.performance);
}), undefined, 4));

它将为stackoverflow.com打印以下内容:

{
    "navigation": {
        "TYPE_BACK_FORWARD": 2,
        "TYPE_NAVIGATE": 0,
        "TYPE_RELOAD": 1,
        "TYPE_RESERVED": 255,
        "redirectCount": 0,
        "type": 0
    },
    "now": {},
    "timing": {
        "connectEnd": 1450633550342,
        "connectStart": 1450633550342,
        "domComplete": 0,
        "domContentLoadedEventEnd": 1450633551673,
        "domContentLoadedEventStart": 1450633551657,
        "domInteractive": 1450633551657,
        "domLoading": 1450633550818,
        "domainLookupEnd": 1450633550342,
        "domainLookupStart": 1450633550342,
        "fetchStart": 1450633550342,
        "loadEventEnd": 0,
        "loadEventStart": 0,
        "navigationStart": 1450633550342,
        "redirectEnd": 0,
        "redirectStart": 0,
        "requestStart": 1450633550342,
        "responseEnd": 1450633550934,
        "responseStart": 1450633550342,
        "secureConnectionStart": 0,
        "unloadEventEnd": 0,
        "unloadEventStart": 0
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Chainer中测量每层时间

来自分类Dev

Linux中如何测量帧缓冲区的渲染时间?

来自分类Dev

测量请求在PhantomJS中花费的时间

来自分类Dev

如何测量抖动性能和渲染时间

来自分类Dev

如何在Java中测量线程池的时间?

来自分类Dev

如何在numba.jit函数中测量时间?

来自分类Dev

如何在CMake中测量每个对象的编译时间?

来自分类Dev

如何在macOS中测量线程的执行时间?

来自分类Dev

如何在C程序中以毫秒为单位测量时间

来自分类Dev

如何在Phoenix中测量页面加载时间

来自分类Dev

如何在Rails 5中节省测量时间?

来自分类Dev

如何在 Python 中测量击键之间的时间间隔?

来自分类Dev

如何在现实世界中以毫秒为单位测量时间?

来自分类Dev

如何在Laravel中显示渲染时间/页面加载时间?

来自分类Dev

如何测量C中每个线程的时间?

来自分类Dev

如何在 Swift 中测量 DispatchQueue 并发异步中的代码块执行时间?

来自分类Dev

如何在 AngularJS 中获取组件(div)渲染时间

来自分类Dev

如何在iOS设备上的Safari浏览器中测量网页加载时间

来自分类Dev

如何在Firefox和/或Chrome中测量FPS和页面绘制时间?

来自分类Dev

如何在NodeJS中测量http.ClientRequest响应时间?

来自分类Dev

如何在C ++中测量特定功能的运行时间{非常准确}

来自分类Dev

如何在jMeter中测量测试片段的响应时间?

来自分类Dev

如何在Bazel中强制重建软件包以测量构建时间

来自分类Dev

如何在终端而不是代码中测量操作的持续时间

来自分类Dev

如何在C#中测量两次点击之间的时间?

来自分类Dev

如何在SQLite中测量每个SQL语句查询的执行时间

来自分类Dev

如何在Linux中测量命令的IOPS?

来自分类Dev

如何在OOXML中测量行距?

来自分类Dev

如何在NDepend中测量RFT指标?

Related 相关文章

  1. 1

    如何在Chainer中测量每层时间

  2. 2

    Linux中如何测量帧缓冲区的渲染时间?

  3. 3

    测量请求在PhantomJS中花费的时间

  4. 4

    如何测量抖动性能和渲染时间

  5. 5

    如何在Java中测量线程池的时间?

  6. 6

    如何在numba.jit函数中测量时间?

  7. 7

    如何在CMake中测量每个对象的编译时间?

  8. 8

    如何在macOS中测量线程的执行时间?

  9. 9

    如何在C程序中以毫秒为单位测量时间

  10. 10

    如何在Phoenix中测量页面加载时间

  11. 11

    如何在Rails 5中节省测量时间?

  12. 12

    如何在 Python 中测量击键之间的时间间隔?

  13. 13

    如何在现实世界中以毫秒为单位测量时间?

  14. 14

    如何在Laravel中显示渲染时间/页面加载时间?

  15. 15

    如何测量C中每个线程的时间?

  16. 16

    如何在 Swift 中测量 DispatchQueue 并发异步中的代码块执行时间?

  17. 17

    如何在 AngularJS 中获取组件(div)渲染时间

  18. 18

    如何在iOS设备上的Safari浏览器中测量网页加载时间

  19. 19

    如何在Firefox和/或Chrome中测量FPS和页面绘制时间?

  20. 20

    如何在NodeJS中测量http.ClientRequest响应时间?

  21. 21

    如何在C ++中测量特定功能的运行时间{非常准确}

  22. 22

    如何在jMeter中测量测试片段的响应时间?

  23. 23

    如何在Bazel中强制重建软件包以测量构建时间

  24. 24

    如何在终端而不是代码中测量操作的持续时间

  25. 25

    如何在C#中测量两次点击之间的时间?

  26. 26

    如何在SQLite中测量每个SQL语句查询的执行时间

  27. 27

    如何在Linux中测量命令的IOPS?

  28. 28

    如何在OOXML中测量行距?

  29. 29

    如何在NDepend中测量RFT指标?

热门标签

归档