【发布时间】:2012-03-07 00:49:12
【问题描述】:
我想知道你会如何看待使用jsperf.com Chrome 测试结果作为 node.js 性能的基准,因为它们都使用 V8 引擎。
【问题讨论】:
标签: javascript node.js performance-testing
我想知道你会如何看待使用jsperf.com Chrome 测试结果作为 node.js 性能的基准,因为它们都使用 V8 引擎。
【问题讨论】:
标签: javascript node.js performance-testing
您可以改用Benchmark.js。它是 jsPerf 的强大动力,也适用于 Node.js。
【讨论】:
我创建了一个工具,可以帮助我从 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 是这里的修订号。结果是这样的:
【讨论】:
我认为您必须考虑 chrome/ium 和 node.js 使用的 v8 的不同版本。
获取您当前节点安装的 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' }
在您当前的 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。
【讨论】: