我正在使用Javascript实现Levenshtein距离函数,并想知道在Wikedia的示例(“sunday”和“saturday”)中运行它需要多长时间。
因此,我使用
因此,我使用
console.time()
和console.timeEnd()
来确定函数执行所需的时间。for (var i = 0; i < 15; i++) {
console.time("benchmark" + i);
var result = LevenshteinDistance("sunday", "saturday");
console.timeEnd("benchmark" + i);
}
由于时间在0.4毫秒和0.15毫秒之间波动,我使用了一个循环,并遇到了奇怪的值:
- 0.187毫秒
- 0.028毫秒
- 0.022毫秒
- 0.022毫秒
- 0.052毫秒
- 0.026毫秒
- 0.028毫秒
- 0.245毫秒
- 0.030毫秒
- 0.024毫秒
- 0.020毫秒
- 0.019毫秒
- 0.059毫秒
- 0.039毫秒
- 0.040毫秒
重复出现的是第一次(很少第二次)执行的高值,然后是更小的值。(在Chrome控制台中的JS和NodeJS中表现相同。)
我的问题是:Javascript是否“缓存”执行过程(因为JS是由V8引擎编译的)?
此外,当每次使用不同参数时,我能否利用这种行为使函数运行更快?