Harness statistico per le regressioni di prestazioni

L'harness console nativo misura HotPDF sia su Win32 sia su Win64 e restituisce uno status di processo fallito quando un workload supera la sua soglia versionata

Eseguire il gate

Tests\Performance\Run-HotPDFPerformance.bat

python tools\validate_performance_report.py ^
  Tests\Performance\Reports\performance-Win32.json ^
  Tests\Performance\Reports\performance-Win64.json

Il file batch costruisce i runner release, esegue tre warmup seguiti da 30 campioni misurati per workload, applica Tests\Performance\thresholds.json e scrive un rapporto per piattaforma sotto Tests\Performance\Reports

Eseguire il gate in isolamento su una macchina per il resto inattiva, perché la contesa dello scheduler e l'I/O di processi non correlati sono volutamente visibili alle misure

Workload

Il fixture ha byte PDF fissi e un'identità SHA-256 bloccata, così un cambio di input non può riusare in silenzio vecchie soglie

Schema del report

hotpdf.performance.v1 registra le versioni del prodotto e dell'harness, il timestamp UTC, lo stato della cache a caldo, l'ambiente, l'identità del fixture, i campioni raw, i riepiloghi, le soglie applicate, i fallimenti e lo stato complessivo di pass

Ogni riepilogo contiene minimo, p50 e p95 nearest-rank, massimo, media aritmetica, varianza campionaria N-1, deviazione standard, RSS osservato e di picco del processo, massima crescita positiva del working set e I/O totale di lettura, scrittura e altro del processo

Il validatore ricalcola indipendentemente le statistiche di tempo, l'RSS, i totali di I/O, le decisioni sulle soglie e lo stato complessivo di pass dai campioni raw

Opzioni del runner e codici di uscita

HotPDFPerformanceRunner.exe \
  --output=report.json \
  --thresholds=thresholds.json \
  --warmup=3 \
  --samples=30

--samples non può scendere sotto 30 e --warmup non può scendere sotto uno

Manutenzione delle soglie

Tenere tetti separati Win32 e Win64 per p50, p95, RSS osservato, crescita del working set, byte letti e byte scritti

Revisionare una soglia solo dopo aver esaminato i campioni raw, le condizioni della macchina, l'identità del fixture, le intenzioni implementative e più esecuzioni isolate ripetute su entrambe le piattaforme

Vedi anche: Caricamento PDF scalabile e ad accesso casuale, Parsing di oggetti semplici basato su span, Diagnostica del rendering e telemetria delle operazioni