gpt4 book ai didi

javascript - 在浏览器中测量和基准测试 javascript 引擎的处理能力

转载 作者:搜寻专家 更新时间:2023-10-31 23:33:42 24 4
gpt4 key购买 nike

衡量 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');

它回答:

Node 0.5.0

  1. 平均:74607.30446024566 FLOPS。标准偏差:4129.4008527666265 float
  2. 平均:73974.89765136827 FLOPS。标准偏差:4574.367360870471 FLOPS
  3. 平均:73923.55086434036 FLOPS。标准差:5768.396926072297 FLOPS

Chrome 13.0.782.112(从控制台 (Ctrl+Shift+J))

  1. 平均:1183.409340319158 FLOPS。标准偏差:24.463468674550658 次运算
  2. 平均:1026.8727431432026 FLOPS。标准偏差:18.32394087291766 FLOPS
  3. 平均:1063.7000331534252失败。标准偏差:22.928786803808094 FLOPS

Chrome 13.0.782.112(作为网页)

  1. 平均:47547.03408688914 FLOPS。标准差:4064.7464541422833 FLOPS
  2. 平均:49273.65762892078 FLOPS。标准差:1553.1768207400576 FLOPS
  3. 平均:47849.72703247966 FLOPS。标准偏差:3445.930694070375 FLOPS

火狐 6.0

  1. 平均:62626.63398692811 FLOPS。标准偏差:3543.4801728588277 float
  2. 平均:85572.76057276056 FLOPS。标准偏差:4336.354514715926 FLOPS
  3. 平均:63780.19323671495 FLOPS。标准偏差:3323.648677036589 FLOPS

歌剧 11.50

  1. 平均:38462.49044165712 FLOPS。标准偏差:2438.527900104241 float
  2. 平均:37968.736460671964 FLOPS。标准偏差:2186.9271687271607 FLOPS
  3. 平均:38638.1851173518 FLOPS。标准偏差:1677.6876987114347 FLOPS

奇怪的事情发生了。控制台上 Chrome 中的基准测试比其他浏览器和 NodeJS 中的基准测试花费了更多时间。我的意思是在 Chrome 上是 30 秒,而在其他浏览器上是 2 秒。与其他浏览器相比,控制台上 Chrome 的标准偏差也非常小。为什么在控制台上执行代码和在网页上执行代码之间存在如此巨大的差异?

如果这一切都太愚蠢了,让我提醒您,我是在不久之前自己“学习”了 javascript(以及一般的编码),所以我在很多事情上都很烂。

什么是衡量这一点的好方法?我想专注于数学运算的速度,而不是其他诸如正则表达式速度之类的东西。你推荐什么?我还尝试生成 10x10 float 矩阵并将它们相乘很多次,结果每次都是 7、8 或 9 M FLOPS,但在 Chrome 上主要是 7,如果它一点也不愚蠢并且有人想要代码我'我很高兴粘贴它。

最佳答案

JS 性能优化通常是一个很大的领域,从头开始是相当雄心勃勃的。

如果我是你,我会看看这个领域的一些现有项目:

  • Benchmark.js处理时间和统计分析(平均、计算方差)位。
  • JSPerf允许任何人创建和运行测试,然后查看任何浏览器的结果。那里有 q 个大型测试存储库,您可以仔细阅读。
  • BrowserScope是 JSPerf 测试的结果存储,并跟踪每个 UA 的结果。

关于javascript - 在浏览器中测量和基准测试 javascript 引擎的处理能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com