看板 Ajax 關於我們 聯絡資訊
※ 引述《TonyQ (自立而後立人。)》之銘言: : 你測試的部份怎麼不寫成底下這樣就好?XD : function stopWatch(fn){ : var start = new Date(); : try{ : fn(); : }finally{ : var end = new Date(); : return end - start; : } : } : stopWatch(function(){ : function f(){alert()} : for(i=0;i<1000000;i++){ : x = f; : } : }); 以這個case來說 這樣寫測不到真正花費的時間 如果不傳fn()進去 而是直接把fn()換成真的要測的部分 也就是變成 function stopWatch(){ var start = new Date(); try{ function f(){alert()} for(i=0;i<1000000;i++){ x = f; } }finally{ var end = new Date(); return end - start; } } 需要的時間馬上增加 150 倍 也比另一種寫法多2.5倍 http://jsfiddle.net/xKvu2/ 奇怪吧?三種很類似的寫法 但得到不同的數據  以Fx10測 時間差不多是3, 180, 470 ms 讓我不禁疑惑怎麼測才對? 更讓人無所適從的是 不同的瀏覽器測出來的數據差很多 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.41.89 ※ 編輯: tomin 來自: 114.24.41.89 (03/12 02:31)
TonyQ:如果會有這種情形那是 optimize 引擎作掉了 XD 03/12 10:21
TonyQ:不過實際上在跑就是要考慮 optimze 引擎啊 :P 03/12 10:22
TonyQ:這是 test case issue 不是 test issue 03/12 10:22