为什么在javascript中运行一次代码比运行四次慢
请参见此处的代码和基准测试: 我在javascript中看到了一种奇怪的行为。一次运行代码所花费的时间是多次运行代码的两倍。代码如下: 准备代码为什么在javascript中运行一次代码比运行四次慢,javascript,performance,benchmarking,Javascript,Performance,Benchmarking,请参见此处的代码和基准测试: 我在javascript中看到了一种奇怪的行为。一次运行代码所花费的时间是多次运行代码的两倍。代码如下: 准备代码 var MakeKeyCodepoint = function() {}; MakeKeyCodepoint.prototype.makeKey = function(word) { var len = word.length; if (len > 255) { return undefined; } var i = le
var MakeKeyCodepoint = function() {};
MakeKeyCodepoint.prototype.makeKey = function(word) {
var len = word.length;
if (len > 255) {
return undefined;
}
var i = len >> 2;
return String.fromCharCode(
(word.charCodeAt(0) & 0x03) << 14 |
(word.charCodeAt(i) & 0x03) << 12 |
(word.charCodeAt(i + i) & 0x03) << 10 |
(word.charCodeAt(i + i + i) & 0x03) << 8 |
len
);
};
var makeKeyCodepointObj = new MakeKeyCodepoint();
var key = makeKeyCodepointObj.makeKey('www.wired.com');
跑四次
var key = makeKeyCodepointObj.makeKey('www.wired.com');
key = makeKeyCodepointObj.makeKey('www.youtube.com');
key = makeKeyCodepointObj.makeKey('scorecardresearch.com');
key = makeKeyCodepointObj.makeKey('www.google-analytics.com');
我在osx的chrome 34中运行它。看起来您是在测试每秒的操作,而不是完成时间。 一次运行更多次会有更多的操作要执行,因此您的结果看起来是合理的 回顾修订版,我会说这是一个异常运行,结果可能更长,因为运行时网站服务器响应
显示了我希望看到的内容您需要修复您的基准,以便它能够实际执行某些操作:
应该慢4倍 我和OPI的结果是一样的,我不是在质疑结果是否如所描述的那样——我是在要求看它@JonasGrumann。结果是否被误读/误解?我认为差异最多为1%的运算/秒,browserscope摘要显示了与问题相反的趋势。我不这么认为。这是一组而不是一组完成所有操作的时间。