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
- load öppnar den deterministiska fyr-sidiga fixturen och materialiserar sidgeometrin
- save serialiserar det delade inlästa dokumentet till en ny fil och spolar det till lagring
- render rasteriserar varje fixture-sida vid 72 DPI
- extract extraherar och verifierar text över varje fixture-sida
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
- Utgångskod
0betyder att varje arbetsbelastning klarade sig - Utgångskod
1betyder att konfiguration, fixture, parsning eller körning misslyckades - Utgångskod
2betyder att minst en prestandatröskel misslyckades
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