How to time different parts of a loop in Javascript
本问题已经有最佳答案,请猛点这里访问。
与如何测量函数执行所花费的时间不重复。 请在将其标记为其他内容的副本之前,先阅读我的问题。 无论如何,它已被回答。
我的代码就像
1 2 3 4 5 6 7 | for (var i = 0 ; i < 10000 ; i++) { doSomething(); doSomethingElse(); } |
我想知道循环中的每个函数整体花费了多少时间。 我该如何衡量?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var t1; var t2; var f1Time =0; var f2Time =0; for (var i = 0 ; i < 10000 ; i++) { t1 = performance.now(); doSomething(); t2 = performance.now(); f1Time+= (t2 - t1); t1 = performance.now(); doSomethingElse(); t2 = performance.now(); f1Time+=(t2 - t1); } |
创建一个测试对象并注册各个时差:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function doSomething() { t = Date.now(); while (Date.now() < t + 13) {} } function doSomethingElse() { t = Date.now(); while (Date.now() < t + 27) {} } var tests = { "doSomething": [], "doSomethingElse": [] }; for (var i_1 = 0; i_1 < 10; i_1++) { var t = Date.now(); doSomething(); tests.doSomething.push(Date.now() - t); t = Date.now(); doSomethingElse(); tests.doSomethingElse.push(Date.now() - t); } for (var key in tests) { if (tests.hasOwnProperty(key)) { tests[key] = tests[key] .reduce(function(sum, value) { return sum + value; }, 0); } } console.log(tests); |