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.json

Batchfilen 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

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

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