統計型效能回歸測試台
原生主控台測試台在 Win32 與 Win64 上測量 HotPDF,工作負載超過版本化門檻時回傳失敗的程序狀態
執行回歸閘
Tests\Performance\Run-HotPDFPerformance.bat
python tools\validate_performance_report.py ^
Tests\Performance\Reports\performance-Win32.json ^
Tests\Performance\Reports\performance-Win64.json
批次檔建置 release 執行器、對每個工作負載先做三次暖機再量測 30 個樣本、套用 Tests\Performance\thresholds.json,並在 Tests\Performance\Reports 下為每個平台寫出一份報告
回歸閘要在其他方面閒置的機器上獨立執行,因為量測刻意把排程爭用與無關的程序 I/O 都算進去
工作負載
- load 開啟確定性的四頁測試檔並具現化頁面幾何
- save 把共享的已載入文件序列化到新檔案並沖寫到儲存裝置
- render 以 72 DPI 把每個測試頁點陣化
- extract 擷取並核對每個測試頁的文字
測試檔的 PDF 位元組固定且 SHA-256 身分被釘住,輸入改變時不會默默沿用舊門檻
報告 schema
hotpdf.performance.v1 記錄產品與測試台版本、UTC 時間戳記、暖快取狀態、環境、測試檔身分、原始樣本、摘要、套用的門檻、失敗項目與整體通過狀態
每個摘要包含最小值、最近序 p50 與 p95、最大值、算術平均、N-1 樣本變異數、標準差、觀測與程序峰值 RSS、最大工作集正成長,以及讀取、寫入與其他程序 I/O 總量
驗證器會從原始樣本獨立重算時間統計、RSS、I/O 總量、門檻判定與整體通過狀態
執行器選項與結束代碼
HotPDFPerformanceRunner.exe \
--output=report.json \
--thresholds=thresholds.json \
--warmup=3 \
--samples=30
--samples 不得低於 30,--warmup 不得低於 1
- 結束代碼
0代表所有工作負載通過 - 結束代碼
1代表組態、測試檔、解析或執行失敗 - 結束代碼
2代表至少一項效能門檻未過
門檻維護
p50、p95、觀測 RSS、工作集成長、讀取位元組與寫入位元組的上限,要分別為 Win32 與 Win64 維護
只有檢視過原始樣本、機器狀況、測試檔身分、實作意圖,以及兩個平台上重複的獨立執行之後,才修訂門檻