此代码:
googleTranslate.translate('Hello', 'de', function(err, translation) {
console.log(translation);
// => { translatedText: 'Hallo', originalText: 'Hello', detectedSourceLanguage: 'en' }
});
问题是:为什么这些版本会同时获得较小的i值?如果我从i中减去一个零;所有版本都需要2.2秒。 (甚至在JIT优化后测试 - 仅在V8中测试)
合乎逻辑的是,第三个版本应该总是更快,但只有非常高的值才会更快。
这只是一种好奇心......实际上并不重要。
答案 0 :(得分:0)
处理器,操作系统和解释器可能会以难以预测的方式干扰您的编程速度。这就是为什么用大哦符号来评估算法的原因。
速度可能与此不同的原因之一是,如果只有一个零,则i
的值只能使用32位表示。因此,解释器生成的汇编代码可以执行优化并使用32位整数的指令。
同样,最后一个代码中i
的值被转换为32位整数,从而改变迭代次数,这就是为什么当i
的值不能仅使用Set
表示时它执行得更快的原因32位。