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
- load ouvre la fixture déterministe de quatre pages et matérialise la géométrie de page
- save sérialise le document chargé partagé vers un fichier neuf et le vide vers le stockage
- render rasterise chaque page de fixture à 72 DPI
- extract extrait et vérifie le texte sur chaque page de fixture
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
- Le code de sortie
0signifie que chaque charge de travail a réussi - Le code de sortie
1signifie que la configuration, la fixture, l'analyse ou l'exécution a échoué - Le code de sortie
2signifie qu'au moins un seuil de performance a échoué
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