【问题标题】:console.time shows different time running the same functionconsole.time 显示运行相同功能的不同时间
【发布时间】:2019-10-04 11:07:29
【问题描述】:

我使用 console.time 来显示函数的时间。但是我发现它显示了相同功能的不同运行时间。

我已将我的功能简化如下:

const findIP = (res) => {
    let arr = []
    arr = res.split(',')
}
console.time('1')
findIP('1,2,3,4,5,6,7,8,9,0')
console.timeEnd('1')
console.time('2')
findIP('1,2,3,4,5,6,7,8,9,0')
console.timeEnd('2')

两者的时间差很大。

我已尝试运行多次。而且它仍然花费不同的时间。

【问题讨论】:

  • 如果这些单位真的是毫秒,那么这是一个微小的差异。只有 0.181 毫秒不同。
  • 那么如何使用console.time比较不同的功能差异很小?
  • 为什么需要看到微小的差异?统计上没有区别。
  • 我只是想比较一下我的代码的效率。就像stackoverflow.com/questions/58244744/… 说的。如果不能判断,那我可以用什么方法呢?

标签: javascript console.log


【解决方案1】:

在以下链接中引用答案:

如果您多次运行缩短,V8 引擎有一个 JIT 编译器,该编译器会优化该段代码,以便下次运行得更快。

https://stackoverflow.com/a/54601440

【讨论】:

  • 但是当我运行第三次或更多次时,它也会显示不同的时间。
【解决方案2】:

尝试更改参数值,例如

console.time('1')
findIP('1,2,3,4,5,6,7,8,9,0')
console.timeEnd('1')
console.time('2')
findIP('1,2,3,4,43,6,7,8,9,4')
console.timeEnd('2')

你会看到大约相等的时间

差异的原因是:浏览器缓存

简单定义 browser cache 是内存或磁盘中的一个临时存储区域,用于保存最近下载的网页和/或计算结果。

【讨论】:

  • 你知道为什么它是大约相等的时间而不是完全相等的时间吗?
猜你喜欢
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多