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
- load abre o fixture determinístico de quatro páginas e materializa a geometria das páginas
- save serializa o documento carregado compartilhado em um arquivo novo e o libera para o armazenamento
- render rasteriza cada página do fixture a 72 DPI
- extract extrai e verifica texto em todas as páginas do fixture
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
- O código de saída
0significa que toda carga de trabalho passou - O código de saída
1significa que a configuração, o fixture, o parsing ou a execução falharam - O código de saída
2significa que pelo menos um limite de desempenho falhou
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