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

时间:2010-01-14 07:04:40

标签: javascript performance

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

5 个答案:

答案 0 :(得分:8)

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

var old_time = new Date();
...
var new_time = new Date();
var seconds_passed = new_time - old_time;

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

答案 1 :(得分:4)

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

var start = (new Date).getTime();
/* Your code. */
var diff = (new Date).getTime() - start;

推荐阅读:

答案 2 :(得分:3)

此主题中的所有其他答案均为 old

现在使用它,它是标准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.")

答案 3 :(得分:2)

其他人已经回答了如何进行时间计算,所以我会回复你的评论:“我正在排序对象数组,我根据对象的属性之一进行排序。所以内置排序我不能用“。

这根本不是真的,你仍然可以使用内置的排序:

var arr = [{ text: 'test', id: 2 }, { text: 'abc', id: 6 }, { text: 'xyz', id: 4 }];
arr.sort(function(x,y) { return x.text > y.text ? 1 : x.text < y.text ? -1 : 0 });

答案 4 :(得分:1)

如果您正在使用Firebug,则可以执行

console.time('someNameHere');
// Do things here
console.timeEnd('someNameHere');