Estrutura estatística de regressão de desempenho

O harness de consola nativo mede o HotPDF em Win32 e Win64 e devolve um estado de processo de falha quando uma carga de trabalho excede o respetivo limiar versionado

Run the gate

Tests\Performance\Run-HotPDFPerformance.bat

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

The batch file builds release runners, performs three warmups followed by 30 measured samples per workload, applies Tests\Performance\thresholds.json, and writes one report per platform under Tests\Performance\Reports

Execute o gate isoladamente, numa máquina de outro modo inativa, porque a contenção do scheduler e o I/O de processos não relacionados ficam deliberadamente visíveis nas medições

Workloads

O fixture tem bytes PDF fixos e uma identidade SHA-256 fixada, para que uma alteração da entrada não possa reutilizar em silêncio limiares antigos

Report schema

hotpdf.performance.v1 regista as versões do produto e do harness, o timestamp UTC, o estado da cache (a quente ou a frio), o ambiente, a identidade do fixture, as amostras em bruto, os resumos, os limiares aplicados, as falhas e o estado global de aprovação

Cada resumo contém o mínimo, os p50 e p95 pelo método nearest-rank, o máximo, a média aritmética, a variância amostral N-1, o desvio-padrão, o RSS observado e o de pico do processo, o crescimento positivo máximo do working set e o total de I/O de leitura, escrita e outro do processo

O validador recalcula de forma independente, a partir das amostras em bruto, as estatísticas de tempo, o RSS, os totais de I/O, as decisões sobre limiares e o estado global de aprovação

Runner options and exit codes

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

--samples não pode ser inferior a 30 e --warmup não pode ser inferior a um

Threshold maintenance

Mantenha limites separados para Win32 e Win64 em p50, p95, RSS observado, crescimento do working set, bytes lidos e bytes escritos

Só reveja um limiar depois de analisar as amostras em bruto, as condições da máquina, a identidade do fixture, a intenção da implementação e várias execuções isoladas repetidas nas duas plataformas

Ver também: Scalable and Random-Access PDF Loading, Span-Based Simple-Object Parsing, Rendering Diagnostics and Operation Telemetry