Statistiskt prestandaregressionsramverk

Den inbyggda konsolharnessen mäter HotPDF på både Win32 och Win64 och returnerar en misslyckad processstatus när en arbetsbelastning överskrider sin versionsbundna tröskel

Kör spärren

Tests\Performance\Run-HotPDFPerformance.bat

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

Batchfilen bygger release-körare, utför tre uppvärmningar följt av 30 uppmätta prov per arbetsbelastning, tillämpar Tests\Performance\thresholds.json och skriver en rapport per plattform under Tests\Performance\Reports

Kör spärren isolerat på en i övrigt inaktiv dator, eftersom schemaläggningsstörningar och orelaterad process-I/O avsiktligt är synliga för mätningarna

Arbetsbelastningar

Fixturen har fasta PDF-byte och en spärrad SHA-256-identitet så att en indataändring inte kan återanvända gamla trösklar tyst

Rapportschema

hotpdf.performance.v1 registrerar produkt- och harnessversioner, UTC-tidsstämpel, varmcache-tillstånd, miljö, fixture-identitet, råa prov, sammanfattningar, tillämpade trösklar, fel och övergripande pass-tillstånd

Varje sammanfattning innehåller minimum, närmaste-rank p50 och p95, maximum, aritmetiskt medelvärde, provvarians av N-1, standardavvikelse, observerad och process-topp-RSS, maximal positiv tillväxt av arbetsset samt total process-I/O för läs, skriv och övrigt

Validatorn beräknar oberoende om timingstatistik, RSS, I/O-antal, tröskelbeslut och sammanhängande pass-tillstånd från de råa proven

Körealternativ och utgångskoder

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

--samples kan inte vara lägre än 30 och --warmup kan inte vara lägre än ett

Tröskelunderhåll

Håll separata Win32- och Win64-tak för p50, p95, observerad RSS, tillväxt av arbetsset, lästa byte och skrivna byte

Revidera endast en tröskel efter att du har granskat råa prov, maskinförhållanden, fixture-identitet, implementeringsavsikt och upprepade isolerade körningar på båda plattformarna

Se även: Scalable and Random-Access PDF Loading, Span-Based Simple-Object Parsing, Rendering Diagnostics and Operation Telemetry