如何检查javascript中特定循环内花费的秒数(或ms)。 我有一个在javascript中实现的排序算法,现在我使用冒泡排序,我想使用快速排序。 我知道在时间效率方面快速排序很好。但我想计算在最里面的循环中花费的实际秒数或毫秒数。 我怎么做javascript?
答案 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)
现在使用它,它是标准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');