性能基准对比工具
免费在线使用 性能基准对比工具 无需安装即可使用工具
關於基準測試對比
並排執行兩段 JavaScript 程式碼片段,迭代次數可設定(限制在 1-1,000,000 之間),分別報告總耗時和每秒操作次數,並宣告更快的一方及其速度倍率。在測量開始前會先執行一次共享的 Setup 程式碼區塊。
使用方法
1. 可選地在頂部卡片填寫 Setup 程式碼(僅執行一次;例如 'let arr = new Array(1000).fill(0)')。 2. 輸入 程式碼 A 和 程式碼 B —— 每段都會作為函式主體,因此請寫普通陳述式,例如 'arr.map(x => x + 1)'。 3. 設定 迭代次數(1-1,000,000)。 4. 點擊 執行。會先執行 min(n,100) 次短預熱,然後再執行計時的迴圈。
解讀結果
每個程式碼區塊都會報告以 ms 為單位的總耗時以及每秒操作次數,後者按 n / (time/1000) 計算。獲勝的卡片以綠色高亮顯示,並有一行摘要顯示速度倍率(例如 'A is 2.3x faster than B')。如果某段程式碼拋出例外,其結果會顯示錯誤字串,且不會宣告獲勝者。
▶這是精確的生產級基準測試嗎?
不是。它使用 new Function 和簡單的 for 迴圈以及 performance.now。沒有統計抽樣,除了一次 100 次呼叫的預熱外沒有隔離 JIT 預熱,瀏覽器的最佳化工具可能會嚴重扭曲短迴圈的結果。請將結果視為快速的對比提示,而非嚴謹的測量。
▶程式碼片段能存取我頁面的變數嗎?
不能。每個片段都被包裝在 new Function 中,在自己的作用域裡執行,而不是頁面上的閉包。Setup 程式碼區塊必須宣告片段所需的任何內容(例如在 setup 函式的頂層用 let/var 宣告)。
▶如果 Setup 拋出例外會怎樣?
錯誤會被捕捉在基準測試函式內部,並作為當時正在測量的那個片段的結果傳回。執行 按鈕會一直停用,直到 程式碼 A 和 程式碼 B 都有內容為止。
▶為什麼很高的迭代次數似乎被限制在 1,000,000?
迭代次數會透過 Math.min/Math.max 被限制到 1-1,000,000 範圍內,以防止頁面卡死。所報告的每秒操作次數仍然根據實際使用的 n 計算。
如果这个工具对你有帮助,请考虑请我喝杯咖啡。
請幫我買杯咖啡吧。