性能基准测试构建工具
免费的在线 JavaScript 性能基准测试工具,无需安装。可比较 JavaScript 代码的执行速度
關於基準建構器
一個面對面比較的 JavaScript 微基準工具:貼上兩個函式主體(片段 A 和片段 B),設定迭代次數,工具會先對每個片段執行 100 次預熱呼叫,再執行設定數量的測量呼叫,然後報告總耗時、每秒操作數,以及哪個片段較快、快多少倍。
使用方法
1. 在頂部卡片中設定迭代次數(預設為 10000)。 2. 在片段 A 卡片中,填寫可選標籤(預設為 "A")和要基準測試的函式主體(例如 `return Math.random()`)。 3. 對片段 B 做同樣操作(例如 `return crypto.getRandomValues(new Uint32Array(1))[0]`)。 4. 點擊執行——在兩個片段主體都不為空之前,按鈕處於停用狀態。 5. 閱讀結果卡片:每個片段顯示以毫秒為單位的總耗時和每秒操作數,外加一行頁尾標明較快的片段和速度比值。如果某片段拋出例外,則會改為以紅色顯示其錯誤。
執行模型與指標
每個片段都以 `new Function(code)` 包裝,並作為無參函式呼叫,因此它必須是有效的函式主體(使用 `return ...` 來執行工作;也允許頂層陳述式)。 - 預熱:在計時前無條件執行 100 次呼叫,以便 JS 引擎進行最佳化。 - 測量:在緊湊迴圈中執行片段 `iterations` 次之前和之後,分別取樣 `performance.now()`。 - 每秒操作數:按 `iterations / (timeMs / 1000)` 計算,四捨五入取整。 - 比值:`max(timeA, timeB) / min(timeA, timeB)`,顯示時保留兩位小數;耗時較小的片段被報告為較快。 請注意,這是一個盡力而為的瀏覽器內微基準,並非統計上嚴格的測試套件:結果會受機器負載、瀏覽器引擎、GC 停頓和死碼消除的影響。
▶為什麼每次點擊執行結果都不同?
▶片段能存取變數、匯入或 async/await 嗎?
▶如果片段拋出例外會怎樣?
▶我的資料會傳送到伺服器嗎?
如果这个工具对你有帮助,请考虑请我喝杯咖啡。
請幫我買杯咖啡吧。