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
- load abre el fixture determinista de cuatro páginas y materializa la geometría de páginas
- save serializa el documento cargado compartido a un archivo nuevo y lo vuelca al almacenamiento
- render rasteriza cada página del fixture a 72 DPI
- extract extrae y verifica el texto de cada página del fixture
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
- El código de salida
0significa que todos los workloads pasaron - El código de salida
1significa que falló la configuración, el fixture, el parseo o la ejecución - El código de salida
2significa que falló al menos un umbral de rendimiento
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