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

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

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