【发布时间】:2017-03-01 04:35:18
【问题描述】:
如果代码每次运行都完全相同,为什么不使用完全相同的执行时间?
例如,代码如下:
console.time();
console.timeEnd();
每次运行它都会产生不同的结果。
【问题讨论】:
-
“假设如果代码每次运行都完全相同,那么它应该使用完全相同的时间来执行。”根据谁?这不是真的。
-
你能说出你在时间和时间结束函数之间执行的语句是什么吗?
-
会根据浏览器的容量而变化。如果浏览器仅占用 50 mb 的内存,则代码填充执行得很快。如果它占用 300 mb 的内存,它将执行缓慢
-
您的 PC 上运行着数百个其他进程,因此结果不太可能相同。如果您的 javascript 解释器是您 PC 上的唯一进程,则事件的执行时间可能会有所不同。
-
@slebetman 即使代码可以直接在没有任何操作系统的 cpu 上运行,时间也可能会有所不同。差异会变小,但仍然存在,热差异或电压波动也会影响执行时间。它将被转移到一个较小的域中。