İstatistiksel Performans Regression Harness'i
Native console harness'i, HotPDF'i Win32 ve Win64'te ölçer ve bir iş yükü sürümlü eşiğini aştığında başarısız bir process durumu döndürür
Gate'i çalıştırma
Tests\Performance\Run-HotPDFPerformance.bat
python tools\validate_performance_report.py ^
Tests\Performance\Reports\performance-Win32.json ^
Tests\Performance\Reports\performance-Win64.json
Batch dosyası release runner'ları derler, iş yükü başına üç warmup ve ardından 30 ölçümlü örnek uygular, Tests\Performance\thresholds.json dosyasını devreye sokar ve Tests\Performance\Reports altına platform başına bir rapor yazar
Gate'i, başka iş olmayan boşta bir makinede izole çalıştırın; çünkü scheduler rekabeti ve ilgisiz process I/O'su ölçümlere kasıtlı olarak yansır
İş yükleri
- load, deterministik dört sayfalık fixture'ı açar ve sayfa geometrisini materialise eder
- save, paylaşılan yüklü belgeyi taze bir dosyaya serileştirir ve depolamaya flush eder
- render, her fixture sayfasını 72 DPI'da rasterleştirir
- extract, her fixture sayfasında metni çıkarır ve doğrular
Fixture, sabit PDF baytlarına ve sabitlenmiş bir SHA-256 kimliğine sahiptir; böylece bir girdi değişikliği eski eşikleri sessizce yeniden kullanamaz
Rapor schema'sı
hotpdf.performance.v1; ürün ve harness sürümlerini, UTC timestamp'ini, warm-cache durumunu, ortamı, fixture kimliğini, ham örnekleri, özetleri, uygulanan eşikleri, başarısızlıkları ve genel geçiş durumunu kaydeder
Her özet; minimum, nearest-rank p50 ve p95, maksimum, aritmetik ortalama, N-1 örnek varyansı, standart sapma, gözlemlenen ve process-tepe RSS, maksimum pozitif working-set büyümesi ve toplam okuma, yazma ve diğer process I/O'sunu içerir
Validator; zamanlama istatistiklerini, RSS'i, I/O toplamlarını, eşik kararlarını ve toplu geçiş durumunu ham örneklerden bağımsız olarak yeniden hesaplar
Runner seçenekleri ve çıkış kodları
HotPDFPerformanceRunner.exe \
--output=report.json \
--thresholds=thresholds.json \
--warmup=3 \
--samples=30
--samples 30'dan düşük olamaz ve --warmup birden düşük olamaz
- Çıkış kodu
0, her iş yükünün geçtiği anlamına gelir - Çıkış kodu
1, yapılandırma, fixture, parsing veya yürütmenin başarısız olduğu anlamına gelir - Çıkış kodu
2, en az bir performans eşiğinin başarısız olduğu anlamına gelir
Eşik bakımı
p50, p95, gözlemlenen RSS, working-set büyümesi, okuma baytları ve yazma baytları için ayrı Win32 ve Win64 tavanları tutun
Bir eşiği yalnızca ham örnekleri, makine koşullarını, fixture kimliğini, uygulama niyetini ve her iki platformda tekrarlanan izole çalıştırmaları gözden geçirdikten sonra revize edin
Ayrıca bkz.: Ölçeklenebilir ve Rastgele Erişimli PDF Yükleme, Span Tabanlı Basit-Object Parsing, Rendering Tanılama ve İşlem Telemetrisi