2017-07-07 60 views
1

不是How to measure time taken by a function to execute的副本。在將其標記爲其他事物的副本之前,請先閱讀我的問題。無論如何,它已被回答。如何在Javascript中循環不同部分的循環


我有一個像

for (var i = 0 ; i < 10000 ; i++) { 

    doSomething(); 

    doSomethingElse(); 

} 

代碼,我想知道多少時間循環內的各功能是整體考慮。我如何衡量?

+0

您可以檢查devtools性能選項卡上的使用時間。 – Teemu

回答

1
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); 

} 
+0

除了你會使用'performance.now()'。 – Xufox

+0

是的,那會更準確。我更新了答案。謝謝 – Vineesh

+0

這是行不通的。這隻給了我for循環所花費的總時間。 – KingSupernova

0

創建一個測試對象,並登記個人時間差:

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);