看板 Ajax 關於我們 聯絡資訊
※ [本文轉錄自 Web_Design 看板 #1FN9KdVm ] 作者: tomin (弱水三千 只取一瓢飲) 看板: Web_Design 標題: Re: javascript benchmark (js效能測試 on creating function) 時間: Sun Mar 11 20:05:57 2012 ※ 引述《tonytonyjan (南洋大兜蟲)》之銘言: : 想請問這兩個寫法對於記憶體或效能影響什麼差別嗎? : // Example 1 : for(i=0;i<1000000000;i++){ : x = function(){alert()} // 是否會產生一堆的 function object? : } : // Example 2 : function f(){alert()} : for(i=0;i<1000000000;i++){ : x = f // 這個我確定只會有一個 function : } 記憶體我不知道 不過效能我測出來了 前者比較快 比後者快2.5倍 測試來源: http://jsperf.com/inital-function http://jsfiddle.net/xKvu2/ 原因我不清楚 也許將一個變數綁定並reference至一個function很花成本? 另外我有個問題 後者有function call好像特別難測? 像以下這兩個版本 都無法正確測試後者實際執行的時間 http://jsfiddle.net/GFue7/ http://jsfiddle.net/hzm97/ 我想將測試code寫得通用、簡潔、漂亮一點 以後可當lib用 或是有那個lib還不錯用? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.41.89 ※ 編輯: tomin 來自: 114.24.41.89 (03/11 20:08) ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: tomin (114.24.41.89), 時間: 03/11/2012 20:12:45
TonyQ:我chrome 跑起來是後者比前者快很多耶 03/12 00:20
TonyQ:你是不是看錯了?可以提供一下你測的瀏覽器跟數據嗎? 03/12 00:21
TonyQ:然後後者我覺得只是你把他想難了... 03/12 00:29
Crow22312:GFue7 這個的零數量不對, 否則在 chrome 中測的差不多 03/12 09:34
Crow22312:三者在 chrome 中都是 x = f 的版本快 03/12 09:35