在javascript中计算循环内部所花费的时间

sat*_*sat 6 javascript performance

如何检查在javascript中在特定循环内花费的秒数(或ms).我有一个在javascript中实现的排序算法,现在我使用冒泡排序,我想使用快速排序.我知道在时间效率方面快速排序很好.但我想计算在最里面的循环中花费的实际秒数或毫秒数.我怎么做javascript?

ken*_*ytm 8

最简单的方法是按日期进行比较.

var old_time = new Date();
...
var new_time = new Date();
var seconds_passed = new_time - old_time;
Run Code Online (Sandbox Code Playgroud)

那么,为什么不使用内置的.sort()(https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/sort)方法呢?

  • @sat:`sort`方法允许你指定一个`compareFunction`,它允许你完成你正在做的事情(无需离开并创建自己的排序方法).有关详细信息,请参阅:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/sort#Parameters. (5认同)
  • 这个答案已经过时了。在下面查看我的完整答案。 (2认同)

Luk*_*kas 6

此线程中的所有其他答案都是旧的

现在使用它,这是标准的https://developer.mozilla.org/en-US/docs/Web/API/Performance.now

var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")
Run Code Online (Sandbox Code Playgroud)


CMS*_*CMS 5

大多数浏览器的时间并不准确,您可以预期大约 15 毫秒的误差幅度:

var start = (new Date).getTime();
/* Your code. */
var diff = (new Date).getTime() - start;
Run Code Online (Sandbox Code Playgroud)

推荐阅读: