【问题标题】:Are jsPerf.com Chrome results reliable for node.js Benchmark?jsPerf.com Chrome 结果对于 node.js Benchmark 是否可靠?
【发布时间】:2012-03-07 00:49:12
【问题描述】:

我想知道你会如何看待使用jsperf.com Chrome 测试结果作为 node.js 性能的基准,因为它们都使用 V8 引擎。

【问题讨论】:

    标签: javascript node.js performance-testing


    【解决方案1】:

    您可以改用Benchmark.js。它是 jsPerf 的强大动力,也适用于 Node.js。

    【讨论】:

      【解决方案2】:

      我创建了一个工具,可以帮助我从 jsperf.com 获取和运行测试:https://github.com/OrKoN/jsperf

      例如:

      jsperf get replace-vs-split-join-vs-replaceall 67
      jsperf run replace-vs-split-join-vs-replaceall 67
      

      67 是这里的修订号。结果是这样的:

      【讨论】:

      • 仅作记录:用字符串替换方法只会替换 first 出现的字符串,而使用带有 'g' 标志的正则表达式将替换 所有 出现的符号。再次使用 split(' ').join('') 将只匹配单数空格,而 /\s+/g 将同时匹配单数和重复空格。
      【解决方案3】:

      我认为您必须考虑 chrome/ium 和 node.js 使用的 v8 的不同版本。

      1. 获取您当前节点安装的 v8 版本
        npm --versions 列出节点生态系统的版本,包括 v8 的版本:

        weemonger@awesomeLinuxDistro:~$ npm --versions
        { npm: '2.11.3',
        http_parser: '2.3',
        模块:“14”,
        节点:'0.12.7', openssl: '1.0.1p',
        uv: '1.6.1',
        v8: '3.28.71.19',
        zlib: '1.2.8' }

      2. 在您当前的 chrome/chromium 中获取 v8 版本: 在地址栏中输入chrome://version/

        Chromium: 38.0.2092.0(Entwickler-Build 282911)
        Betriebssystem: Windows (不是那么棒的操作系统)
        闪烁: 537.36 (@178012)
        JavaScript:V8 3.28.21
        Flash: 20 ,0,0,235
        用户代理: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2092.0 Safari/537.36
        ...

      感谢bentinata 的评论。


      但更安全的方法是在您的特定环境中进行基准测试(请参阅John-David Daltons answer)。


      获取 v8 版本的方法不太好(旧)

      • node.js

        node -e "console.log(process.versions.v8)"
        (https://stackoverflow.com/a/10264593/3346021)

      • 铬/铬
        请参阅Ariya Hidayats Blog 以确定 chrome/ium 使用的 v8 版本。

        首先,查看 Chromium Subversion 存储库的发布分支,可在 src.chromium.org/viewvc/chrome/releases 方便地浏览。
        现在是检查正确版本的问题。在撰写本文时,我的 Google Chrome 显示其版本为 17.0.963.46。
        查看文件 17.0.963.46/DEPS(由构建系统 Gyp 使用)时,您会找到指向正确版本 V8 的链接,即 v8.googlecode.com/svn/branches/3.7 修订版 10521。
        这可以在 V8 存储库中交叉引用:branchs/3.7&start=10521。

      【讨论】:

        猜你喜欢
        • 2011-07-12
        • 2013-06-11
        • 2011-02-12
        • 2019-02-20
        • 1970-01-01
        • 1970-01-01
        • 2010-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多