Banc de régression de performance statistique

Le banc console natif mesure HotPDF sur Win32 et Win64 et retourne un état de processus en échec lorsqu'une charge de travail dépasse son seuil versionné

Exécuter le portail

Tests\Performance\Run-HotPDFPerformance.bat

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

Le fichier de lot construit les exécutables de version finale, effectue trois échauffements suivis de 30 échantillons mesurés par charge de travail, applique Tests\Performance\thresholds.json et écrit un rapport par plateforme sous Tests\Performance\Reports

Exécutez le portail en isolation sur une machine par ailleurs inactive, car la contention de l'ordonnanceur et les E/S de processus non liées sont délibérément visibles pour les mesures

Charges de travail

La fixture a des octets PDF fixes et une identité SHA-256 épinglée afin qu'un changement d'entrée ne puisse pas réutiliser silencieusement d'anciens seuils

Schéma du rapport

hotpdf.performance.v1 enregistre les versions du produit et du banc, l'horodatage UTC, l'état de cache chaud, l'environnement, l'identité de la fixture, les échantillons bruts, les résumés, les seuils appliqués, les échecs et l'état de réussite global

Chaque résumé contient le minimum, les p50 et p95 de rang le plus proche, le maximum, la moyenne arithmétique, la variance d'échantillon N-1, l'écart type, la RSS observée et de pointe de processus, la croissance positive maximale de l'espace de travail et le total des E/S de lecture, d'écriture et autres

Le validateur recalcule indépendamment les statistiques de synchronisation, la RSS, les totaux d'E/S, les décisions de seuil et l'état de réussite agrégé à partir des échantillons bruts

Options d'exécution et codes de sortie

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

--samples ne peut pas être inférieur à 30 et --warmup ne peut pas être inférieur à un

Maintenance des seuils

Conservez des plafonds Win32 et Win64 séparés pour p50, p95, la RSS observée, la croissance de l'espace de travail, les octets lus et les octets écrits

Ne révisez un seuil qu'après avoir examiné les échantillons bruts, les conditions de la machine, l'identité de la fixture, l'intention de mise en œuvre et des exécutions isolées répétées sur les deux plateformes

Voir aussi : Scalable and Random-Access PDF Loading, Span-Based Simple-Object Parsing, Rendering Diagnostics and Operation Telemetry