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
- load abre o fixture determinístico de quatro páginas e materializa a geometria das páginas
- save serializa o documento carregado partilhado para um ficheiro novo e força a sua escrita em disco
- render rasterises every fixture page at 72 DPI
- extract extracts and verifies text across every fixture page
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
- Exit code
0means every workload passed - Exit code
1means configuration, fixture, parsing, or execution failed - Exit code
2means at least one performance threshold failed
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