Statistisches Framework für Leistungsregressionen
Das native Konsolen-Framework misst HotPDF unter Win32 und Win64 und gibt einen fehlerhaften Prozessstatus zurück, wenn eine Arbeitslast ihren versionierten Schwellenwert überschreitet
Prüfung ausführen
Tests\Performance\Run-HotPDFPerformance.bat
python tools\validate_performance_report.py ^
Tests\Performance\Reports\performance-Win32.json ^
Tests\Performance\Reports\performance-Win64.json
Die Batchdatei erstellt Release-Runner, führt drei Aufwärmungen und anschließend 30 Messproben je Arbeitslast aus, wendet Tests\Performance\thresholds.json an und schreibt je Plattform einen Bericht unter Tests\Performance\Reports
Führen Sie die Prüfung isoliert auf einem ansonsten ungenutzten Rechner aus, da Planerkonkurrenz und E/A anderer Prozesse absichtlich in den Messungen sichtbar sind
Arbeitslasten
- load öffnet das deterministische Fixture mit vier Seiten und materialisiert die Seitengeometrie
- save serialisiert das gemeinsam geladene Dokument in eine neue Datei und schreibt es in den Speicher
- render rastert jede Fixture-Seite mit 72 DPI
- extract extrahiert und überprüft Text auf jeder Fixture-Seite
Das Fixture besitzt feste PDF-Bytes und eine festgelegte SHA-256-Identität, sodass eine Eingabeänderung nicht unbemerkt alte Schwellenwerte wiederverwenden kann
Berichtsschema
hotpdf.performance.v1 erfasst Produkt- und Frameworkversionen, UTC-Zeitstempel, Warm-Cache-Status, Umgebung, Fixture-Identität, Rohproben, Zusammenfassungen, angewandte Schwellenwerte, Fehler und den Gesamtstatus
Jede Zusammenfassung enthält Minimum, p50 und p95 nach dem Nearest-Rank-Verfahren, Maximum, arithmetisches Mittel, Stichprobenvarianz mit N-1, Standardabweichung, beobachteten und höchsten Prozess-RSS, größtes positives Wachstum des Arbeitssatzes sowie gesamte Lese-, Schreib- und sonstige Prozess-E/A
Der Validator berechnet Zeitstatistik, RSS, E/A-Summen, Schwellenwertentscheidungen und den aggregierten Gesamtstatus unabhängig aus den Rohproben neu
Runner-Optionen und Exit-Codes
HotPDFPerformanceRunner.exe \
--output=report.json \
--thresholds=thresholds.json \
--warmup=3 \
--samples=30
--samples darf nicht kleiner als 30 sein und --warmup nicht kleiner als eins
- Exit-Code
0bedeutet, dass jede Arbeitslast bestanden wurde - Exit-Code
1bedeutet, dass Konfiguration, Fixture, Parsing oder Ausführung fehlgeschlagen sind - Exit-Code
2bedeutet, dass mindestens ein Leistungsschwellenwert fehlgeschlagen ist
Pflege der Schwellenwerte
Führen Sie getrennte Win32- und Win64-Grenzwerte für p50, p95, beobachteten RSS, Wachstum des Arbeitssatzes, gelesene Bytes und geschriebene Bytes
Ändern Sie einen Schwellenwert erst nach Prüfung der Rohproben, der Maschinenbedingungen, der Fixture-Identität, der Implementierungsabsicht und wiederholter isolierter Ausführungen auf beiden Plattformen
Siehe auch: Skalierbares PDF-Laden mit wahlfreiem Zugriff, Spannenbasiertes Parsen einfacher Objekte, Rendering-Diagnose und Operationstelemetrie