如何阅读 jsben.ch 基准测试结果?
How to read jsben.ch benchmark result?
我已经将三种斐波那契算法与 jsben.ch 进行了比较,正如预期的那样,第一个是最快的(它甚至有一个小奖励图标):
但是,我找不到代码块结果旁边的数字是什么意思?越高越好,但单位是什么?
我能想到的唯一合理的单位(这是我的假设)结果显示 ops/sec
表示每个测试在一秒内可以执行多少次。
但是,如果 jsben.ch 清楚地说明这一点以避免混淆或者至少在帮助部分解释了含义(遗憾的是也没有),那就更好了。
查看代码(检查元素),他们似乎只创建了查看 execution time
或他们如何称呼它的基准 runTime = a - s
。
来自代码:
for (var u of e.model.codeBlocks) {
u.result.percent = 0,
yield e.$sleep(e.model.pausePerBlock);
var m = e.runTestForAmountOfTime(u, e.model.timeToRun);
u.result = {
runTime: m.runTime,
amountOfRounds: m.counter,
percent: 0
};
var p = m.timer - d;
e.state.app.testProgress = Math.round(100 / c * p),
e.state.app.testProgress > 100 && (e.state.app.testProgress = 100),
yield e.$sleep(e.model.pausePerBlock)
}
最后是方法:runTestForAmountofTime
:
runTestForAmountOfTime(e, t) {
var o = "benchmark_" + e.id
, a = performance.now()
, s = performance.now()
, r = 0;
do {
this.iframe.contentWindow[o](arguments),
r++,
s = performance.now()
} while (s - a < t && !this.model.errorMessage);
return {
counter: r,
runTime: a - s, // I think that this is the point
timer: s
}
}
我已经将三种斐波那契算法与 jsben.ch 进行了比较,正如预期的那样,第一个是最快的(它甚至有一个小奖励图标):
但是,我找不到代码块结果旁边的数字是什么意思?越高越好,但单位是什么?
我能想到的唯一合理的单位(这是我的假设)结果显示 ops/sec
表示每个测试在一秒内可以执行多少次。
但是,如果 jsben.ch 清楚地说明这一点以避免混淆或者至少在帮助部分解释了含义(遗憾的是也没有),那就更好了。
查看代码(检查元素),他们似乎只创建了查看 execution time
或他们如何称呼它的基准 runTime = a - s
。
来自代码:
for (var u of e.model.codeBlocks) {
u.result.percent = 0,
yield e.$sleep(e.model.pausePerBlock);
var m = e.runTestForAmountOfTime(u, e.model.timeToRun);
u.result = {
runTime: m.runTime,
amountOfRounds: m.counter,
percent: 0
};
var p = m.timer - d;
e.state.app.testProgress = Math.round(100 / c * p),
e.state.app.testProgress > 100 && (e.state.app.testProgress = 100),
yield e.$sleep(e.model.pausePerBlock)
}
最后是方法:runTestForAmountofTime
:
runTestForAmountOfTime(e, t) {
var o = "benchmark_" + e.id
, a = performance.now()
, s = performance.now()
, r = 0;
do {
this.iframe.contentWindow[o](arguments),
r++,
s = performance.now()
} while (s - a < t && !this.model.errorMessage);
return {
counter: r,
runTime: a - s, // I think that this is the point
timer: s
}
}