Joã*_*imo 3 javascript firefox benchmarking google-chrome node.js
什么是衡量v8或spidermonkey等javascript引擎性能的准确方法?它应该至少与一个评估和另一个评估没有很大的偏差,可能允许在不同操作系统和不同硬件配置上的不同javascript引擎之间进行排名.
我的第一次尝试是在一个没有任何内容的网页上,我在网页浏览器中加载了该页面.然后我尝试在Google Chrome的javascript控制台中执行此代码,结果非常不同,您将在结果中看到:
mean = function (distr) {
var sum = 0;
for (obs in distr) {
sum += distr[obs];
};
return sum / distr.length;
};
stdev = function (distr,mean) {
var diffsquares = 0;
for (obs in distr) {
diffsquares += Math.pow(distr[obs] - mean , 2);
};
return Math.sqrt((diffsquares / distr.length));
};
var OPs = 1000000;
var results = [];
for (var t = 0; t < 60; t++) {
var start = (new Date()).getTime();
for(var i = 0.5; i < OPs; i++){
i++;
}
var end = (new Date()).getTime();
var took = end - start;
var FLOPS = OPs/took;
results.push(FLOPS);
};
average = mean(results);
deviation = stdev(results,average);
console.log('Average: '+average+' FLOPS. Standart deviation: '+deviation+' FLOPS');
Run Code Online (Sandbox Code Playgroud)
它回答说:
NodeJS 0.5.0
Chrome 13.0.782.112(从控制台(Ctrl + Shift + J))
Chrome 13.0.782.112(作为网页)
Firefox 6.0
歌剧11.50
发生了一件奇怪的事.Chrome控制台上的基准测试比其他浏览器和NodeJS中的基准测试花了更多的时间.我的意思是Chrome上的30秒,而其他的则是2秒.与其他产品相比,Chrome在控制台上的标准偏差也非常小.为什么在控制台上执行代码和在网页中执行代码之间存在巨大差异?
如果这太愚蠢了,让我提醒你,我自己"学习"了javascript(以及一般的代码)而不是很久以前,所以我很多东西都很糟糕.
有什么好处呢?我想专注于数学运算的速度,而不是像正则表达速度这样的其他东西.你有什么建议的?我还尝试生成10x10浮点数矩阵并将它们乘以很多次,结果每次都是7,8或9 M FLOPS,但在Chrome上大多数是7,如果它根本不是愚蠢而有人想要代码我'我高兴地把它粘贴吧.
JS性能优化通常是一个巨大的领域,从头开始是相当雄心勃勃的.
如果我是你,我会看看这个空间周围的一些现有项目:
| 归档时间: |
|
| 查看次数: |
998 次 |
| 最近记录: |