2009-07-20 64 views
5

背景:JavaScript性能評價

我搜索周圍的參考,或可能是一個工具,可以幫助你評估理論上你的JavaScript的效率(資源成本)。這種搜索已經發現了很多優秀的調試軟件,但是我找不到能幫助我優化代碼的東西,它利用了更少的資源密集型方法。

問題:

有什麼資源(在線指南,目錄,數據庫,書籍,任何東西)或者是一些軟件(基於Web的瀏覽器插件,IDE擴展),這將有助於您優化JavaScript的?

例如:

在IE innerText/textContent在Firefox需要比在任一瀏覽器innerHTML資源要少得多。

這是一個常識,因爲它不那麼強大,但是我每天都會聽到其他比較,並且無法真正驗證它們是否更適合優化代碼或更高效,甚至如果我能我無法測試它!

任何想法?

+0

感謝所有答案一起!我會最終使用這些測試的一切,但我guess猜測而不是使用指南來展示你「應該」和「不應該」使用的內容,你只需使用試驗和錯誤來與這些測試結合起來,爲你自己的使用案例建立最佳實踐。 會做。 – NateDSaint 2009-07-20 19:59:17

+0

不確定 – NateDSaint 2013-04-15 19:06:46

回答

6

評估的JavaScript通常的方法是通過評估所花費的時間量的一組代碼來執行:

var begin = new Date().getTime(); 
//do stuff 
console.debug(new Date().getTime() - begin); 

不過,也有一些問題,這在IE中。如果一個腳本需要運行< 15ms,則IE會返回0ms。

各種JavaScript庫都有測試框架來幫助評估代碼的速度。 Dojo的測試框架稱爲DOH。

John Resig還製作了一個名爲FireUnit的Firebug插件,它允許您輕鬆地評估函數執行所花費的時間,並且通過一些配置,還輸出函數的大O,這是一個偉大的數據。

退房從JSConf Resig的視頻JS性能測試:

Measuring Javascript Performance - John Resig

FireUnit rundown

+2

jsyk,在筆記本電腦上,IE9的計時器分辨率取決於計算機當前的電量計劃,如果它使用電池供電,那麼分辨率約爲16ms,但如果它充電則更爲精細,而且您應該*對大量迭代運行測試,因此測試本身可能需要幾秒鐘的時間然後除以迭代次數。這使得定時器分辨率幾乎沒有區別。 – 2012-04-04 17:39:07

3

我總是喜歡使用Firebug簡單的方法:

console.time("timer-name"); 

console.timeEnd("timer-name"); 

適用於粒度級測量。

1

Firebug的'個人資料'工具非常適合測量JavaScript性能。它通過功能分類向您展示了代碼中所有功能瓶頸,顯示哪一個平均時間最長,大部分調用等等。

8

與strife25相同,螢火蟲擁有非常方便的測量時間的方法,無需處理任何日期。只需使用這個:

console.time("Your timer name"); 
//Execute some javascript 
console.timeEnd("Your timer name"); 

然後,檢查控制檯。 alt text http://aquate.us/u/62232567893647972047.jpg

編輯關閉30奇秒。 :(

1

探查在IE8是驚人的。它給你一個樹視圖與包容時間(毫秒)