Harness estadístico de regresión de rendimiento

El harness de consola nativo mide HotPDF tanto en Win32 como en Win64 y devuelve un status de proceso fallido cuando un workload excede su umbral versionado

Ejecute la puerta

Tests\Performance\Run-HotPDFPerformance.bat

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

El archivo batch compila los runners de release, realiza tres warmups seguidos de 30 muestras medidas por workload, aplica Tests\Performance\thresholds.json y escribe un reporte por plataforma bajo Tests\Performance\Reports

Ejecute la puerta de forma aislada en una máquina que no esté haciendo nada más, porque la contención del scheduler y la E/S de procesos no relacionados son visibles deliberadamente para las mediciones

Workloads

El fixture tiene bytes PDF fijos y una identidad SHA-256 fijada, así que un cambio de entrada no puede reutilizar silenciosamente los umbrales antiguos

Schema del reporte

hotpdf.performance.v1 registra las versiones del producto y del harness, el timestamp UTC, el estado de cache caliente, el entorno, la identidad del fixture, las muestras crudas, los resúmenes, los umbrales aplicados, los fallos y el estado general de aprobación

Cada resumen contiene mínimo, p50 y p95 de nearest-rank, máximo, media aritmética, varianza muestral N-1, desviación estándar, RSS observado y pico de proceso, crecimiento máximo positivo del working set, y E/S total de lectura, escritura y otras del proceso

El validador recalcula de forma independiente las estadísticas de tiempo, el RSS, los totales de E/S, las decisiones de umbrales y el estado agregado de aprobación a partir de las muestras crudas

Opciones del runner y códigos de salida

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

--samples no puede ser menor que 30 y --warmup no puede ser menor que uno

Mantenimiento de umbrales

Mantenga techos separados de Win32 y Win64 para p50, p95, RSS observado, crecimiento del working set, bytes leídos y bytes escritos

Revice un umbral solo después de examinar las muestras crudas, las condiciones de la máquina, la identidad del fixture, la intención de la implementación y ejecuciones aisladas repetidas en ambas plataformas

Vea también: Scalable and Random-Access PDF Loading, Span-Based Simple-Object Parsing, Rendering Diagnostics and Operation Telemetry