为什么在javascript中运行代码一次比运行四次慢?
Why is running code single time slower than running four times in javascript
查看代码和基准测试:http://jsperf.com/single-vs-multiple-times-2
我看到一个奇怪的行为在javascript。单次运行代码所花费的时间是多次运行代码的两倍。代码如下:
<<p> 准备代码/strong>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');
运行4次
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版显示了我希望看到的内容
您需要修复您的基准,以便它实际做一些事情:http://jsperf.com/single-vs-multiple-times-2/5
应该正好慢4倍。
相关文章:
- 使用每500ms运行一次的jquery函数是个好主意吗
- For循环在Jquery中只运行一次
- 使函数只运行一次(Javascript)
- 更改路由后,运行一次js脚本
- 只运行一次提取的脚本
- 可能只在for循环内部运行一次代码块
- 在Flask中使用.getJSON请求时,只运行一次命令
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- setInterval 只在对象方法上运行一次
- 如何在 window.setInterval 中每分钟运行一次 getJSON 函数
- Cordova(Ionic):Splashscreen只在Android上运行一次
- jQuery事件将只运行一次
- 如果发现任何数据,如何停止每7秒运行一次的函数
- 计划每60秒运行一次代码
- 事件只运行一次
- MEANIO群集(共4个)对于计划作业仅运行一次
- 为什么AS3 navigationToURL()只运行一次
- 在nodeJS中每小时运行一次调度作业
- 如何一次运行一次循环javascript
- 在for循环中触发onchange事件只运行一次