Estrutura estatística de regressão de desempenho

A estrutura de console nativa mede o HotPDF no Win32 e no Win64 e retorna um status de processo com falha quando uma carga de trabalho excede seu limite versionado

Execute o portão

Tests\Performance\Run-HotPDFPerformance.bat

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

O arquivo em lote compila executores de release, realiza três aquecimentos seguidos de 30 amostras medidas por carga de trabalho, aplica Tests\Performance\thresholds.json e grava um relatório por plataforma em Tests\Performance\Reports

Execute o portão isoladamente em uma máquina ociosa, pois a contenção do agendador e a E/S de processo não relacionada são deliberadamente visíveis às medições

Cargas de trabalho

O fixture tem bytes PDF fixos e uma identidade SHA-256 fixada para que uma alteração de entrada não possa reutilizar silenciosamente limites antigos

Esquema do relatório

hotpdf.performance.v1 registra as versões do produto e da estrutura, carimbo de data/hora UTC, estado de cache morno, ambiente, identidade do fixture, amostras brutas, resumos, limites aplicados, falhas e estado geral de aprovação

Cada resumo contém mínimo, p50 e p95 de classificação mais próxima, máximo, média aritmética, variância de amostra N-1, desvio padrão, RSS observado e de pico do processo, crescimento máximo positivo do conjunto de trabalho e totais de leitura, gravação e outra E/S de processo

O validador recalcula de forma independente as estatísticas de tempo, RSS, totais de E/S, decisões de limite e estado agregado de aprovação a partir das amostras brutas

Opções do executor e códigos de saída

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

Manutenção de limites

Mantenha tetos separados de Win32 e Win64 para p50, p95, RSS observado, crescimento do conjunto de trabalho, bytes lidos e bytes gravados

Revise um limite apenas depois de analisar amostras brutas, condições da máquina, identidade do fixture, intenção de implementação e execuções isoladas repetidas em ambas as plataformas

Veja também: Carregamento de PDF escalável e de acesso aleatório, Parsing de objetos simples baseado em span, Diagnósticos de renderização e telemetria de operação