为什么JavaScript运行同一个函数要花费不同的时间?

为什么JavaScript运行同一个函数要花费不同的时间?,javascript,function,Javascript,Function,我在玩JavaScript,我想做一些我以前从未做过的事情 我在网上查了很多东西,想知道函数调用的速度有多快 我发现这个代码: var performance = window.performance; var t0 = performance.now(); doWork(); var t1 = performance.now(); console.log("Call to doWork took " + (t1 - t0) + " milliseconds.&qu

我在玩JavaScript,我想做一些我以前从未做过的事情

我在网上查了很多东西,想知道函数调用的速度有多快

我发现这个代码:

var performance = window.performance;
var t0 = performance.now();
doWork();
var t1 = performance.now();
console.log("Call to doWork took " + (t1 - t0) + " milliseconds.")
我个人很喜欢这段代码,因为它会自动运行函数,而且很容易设置,因为您所要做的就是更改doWork();,并将代码放在函数下

我做了一些事情,我从一个函数向控制台记录了“Hi”,并得到了函数运行的许多不同时间

就像人类的反应时间一样,每次调用函数时,运行函数所需的时间是可变的

它是完全随机的,并且一次又一次地运行相同的函数。以下是我的完整JavaScript代码:

函数hi(){
控制台日志(“Hi”)
}
var性能=window.performance;
var t0=performance.now();
嗨();
var t1=performance.now();

console.log(“对函数的调用花费了“+(t1-t0)+”毫秒。”)
在JS中不能依赖亚毫秒计时器来精确,特别是对于像单个
console.log这样的小代码。作为:

需要记住的是,为了缓解潜在的安全威胁(如Spectre),浏览器通常会将返回值取整一定量,以降低可预测性。这会限制计时器的分辨率或精度,从而导致一定程度的不准确性。例如,Firefox将返回的时间舍入为1毫秒的增量

如果它们是完全准确的,并且尽可能准确,理论上可能是一种安全风险


同样的操作需要花费不同的时间,可能还有其他原因,例如系统的其他部分(其他程序、其他选项卡等)所使用的资源量。

请澄清,我使用的是JSFIDLE。哦,这就解释了原因。我打开了64个标签。几乎所有这些都只是编程。