Preflight Stress Testing

tools\Run-PreflightStress.ps1 tools\Run-PreflightStress.ps1 會編譯 HotPDFPreflight console tool,逐一對大型 PDF directory 執行,寫入 per-file reports 與 logs,並記錄 JSON / Markdown performance baseline。每個檔案都以 timeout 隔離,因此單一昂貴 PDF 不會阻塞整個執行。預設 timeout 是 120 seconds,可讓大型 implementation-limit files 完成,同時仍隔離 pathological inputs

Default run

powershell -NoProfile -ExecutionPolicy Bypass -File tools\Run-PreflightStress.ps1

預設 sample root 是 D:\PDFdoc\PDF-Samples。Run output 會寫入 Tests\PreflightStress\runs\ 下;該路徑被 Git 忽略,因為 reports 與 logs 具有 machine-specific 性質

Custom sample root

powershell -NoProfile -ExecutionPolicy Bypass -File tools\Run-PreflightStress.ps1 `
  -SampleRoot D:\PDFdoc\PDF-Samples `
  -OutputRoot D:\Temp\HotPDFPreflightStress `
  -MaxFiles 1000 `
  -MaxBytes 5242880 `
  -MaxSecondsPerFile 120

Metrics

baseline 會擷取 total input file count、selected file count、byte totals、largest and smallest selected input size、processed / passed / failed / timed-out counts、elapsed seconds、files per second、MiB per second、output format、selected preset、per-file CSV path、report root 與 log root

Interpreting failures

failed 或 timed-out row 表示某個 PDF 無法在目前 run limits 內處理;script 仍會寫入 baseline,只要有檔案失敗或逾時就以 exit code 1 結束,既保留 evidence,也讓 regression jobs 能偵測到不成功的執行

每次執行請選用全新的 OutputRoot;reports 目錄非空時會被拒絕,舊報告因此無法讓後續執行看似成功,先前的 reports 也仍然保留可用

Related Topics