【问题标题】:Why is javascript execution time different every time?为什么每次javascript执行时间都不一样?
【发布时间】:2017-03-01 04:35:18
【问题描述】:

如果代码每次运行都完全相同,为什么不使用完全相同的执行时间?

例如,代码如下:

console.time();
console.timeEnd();

每次运行它都会产生不同的结果。

【问题讨论】:

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

标签: javascript execution-time


【解决方案1】:

要理解为什么会这样,首先你应该知道 JS 在并发模型中工作。 Javascript中有一个事件循环,负责执行JS代码。 So this reference will definitely help to answer this question.

【讨论】:

    【解决方案2】:

    当您打开浏览器并运行脚本时,会发生很多使用计算机内存的事情。这些事情会影响您的浏览器可以访问多少内存。您的浏览器当时可用的内存越多,您的脚本运行速度就越快。

    【讨论】:

    • 即使计算机有无限量的内存可以访问,执行时间仍然会有所不同。需要一定数量的内存,以便代码的执行不会因为页面交换而减慢。但在那之后,如果您添加更多内存,则更多内存不会使代码运行得更快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 2016-02-08
    • 1970-01-01
    • 2019-01-21
    • 2013-08-12
    • 1970-01-01
    • 2017-12-05
    相关资源
    最近更新 更多