Statistisk testmiljø for regressionsydeevne
Det indbyggede konsoltestmiljø måler HotPDF på både Win32 og Win64 og returnerer en fejlet processtatus, når en arbejdsbelastning overskrider sin versionerede grænse
Kør kontrollen
Tests\Performance\Run-HotPDFPerformance.bat
python tools\validate_performance_report.py ^
Tests\Performance\Reports\performance-Win32.json ^
Tests\Performance\Reports\performance-Win64.jsonBatchfilen bygger release-kørere, udfører tre opvarmninger efterfulgt af 30 målte prøver pr. arbejdsbelastning, anvender Tests\Performance\thresholds.json og skriver én rapport pr. platform under Tests\Performance\Reports
Kør kontrollen isoleret på en maskine, der ellers er ledig, fordi planlæggerkonkurrence og I/O fra uvedkommende processer bevidst er synlige for målingerne
Arbejdsbelastninger
- load åbner den deterministiske firesiders fixture og materialiserer sidegeometri
- save serialiserer det delte indlæste dokument til en ny fil og skriver det til lageret
- render rasteriserer hver fixture-side ved 72 DPI
- extract udtrækker og verificerer tekst på tværs af hver fixture-side
Fixturen har faste PDF-byte og en fastlåst SHA-256-identitet, så en inputændring ikke stiltiende kan genbruge gamle grænser
Rapportskema
hotpdf.performance.v1 registrerer produkt- og testmiljøversioner, UTC-tidsstempel, varm-cache-tilstand, miljø, fixture-identitet, rå prøver, oversigter, anvendte grænser, fejl og samlet bestået tilstand
Hver oversigt indeholder minimum, nearest-rank p50 og p95, maksimum, aritmetisk gennemsnit, N-1-stikprøvevarians, standardafvigelse, observeret og procesmaksimal RSS, maksimal positiv vækst i arbejdssæt samt samlet læse-, skrive- og anden proces-I/O
Validatoren genberegner uafhængigt tidsstatistik, RSS, I/O-totaler, grænseafgørelser og samlet bestået tilstand fra de rå prøver
Kørerindstillinger og afslutningskoder
HotPDFPerformanceRunner.exe \
--output=report.json \
--thresholds=thresholds.json \
--warmup=3 \
--samples=30--samples kan ikke være lavere end 30, og --warmup kan ikke være lavere end én
- Afslutningskode
0betyder, at alle arbejdsbelastninger bestod - Afslutningskode
1betyder, at konfiguration, fixture, parsing eller udførelse fejlede - Afslutningskode
2betyder, at mindst én ydelsesgrænse fejlede
Vedligeholdelse af grænser
Bevar separate Win32- og Win64-lofter for p50, p95, observeret RSS, vækst i arbejdssæt, læste byte og skrevne byte
Revider kun en grænse efter gennemgang af rå prøver, maskinforhold, fixture-identitet, implementeringshensigt og gentagne isolerede kørsler på begge platforme
Se også: Skalerbar PDF-indlæsning med tilfældig adgang, Span-baseret parsing af simple objekter, Gengivelsesdiagnostik og operationstelemetri