統計的パフォーマンス回帰ハーネス
ネイティブコンソールハーネスは Win32 と Win64 の両方で HotPDF を測定し、ワークロードがバージョン付きしきい値を超えると失敗プロセスステータスを返します
ゲートの実行
Tests\Performance\Run-HotPDFPerformance.bat
python tools\validate_performance_report.py ^
Tests\Performance\Reports\performance-Win32.json ^
Tests\Performance\Reports\performance-Win64.json
バッチファイルはリリースランナーを構築し、ワークロードごとに 3 回のウォームアップの後に 30 サンプルの測定を行い、Tests\Performance\thresholds.json を適用し、Tests\Performance\Reports の下にプラットフォームごとに 1 つのレポートを書き込みます
スケジューラー競合と関連のないプロセス I/O は測定に意図的に可視であるため、ゲートはアイドル状態のマシンで単独で実行してください
ワークロード
- load は決定的な 4 ページフィクスチャを開き、ページ幾何を具体化します
- save は共有ロード済みドキュメントを新しいファイルにシリアライズし、ストレージにフラッシュします
- render はすべてのフィクスチャページを 72 DPI でラスタライズします
- extract はすべてのフィクスチャページにわたってテキストを抽出して検証します
フィクスチャは固定の PDF バイトと固定された SHA-256 アイデンティティを持つため、入力の変更が古いしきい値を静かに再利用することはありません
レポートスキーマ
hotpdf.performance.v1 は、製品とハーネスのバージョン、UTC タイムスタンプ、ウォームキャッシュ状態、環境、フィクスチャアイデンティティ、生サンプル、要約、適用されたしきい値、失敗、全体のパス状態を記録します
各要約には、最小、上位順位 p50 と p95、最大、算術平均、N-1 サンプル分散、標準偏差、観測済みとプロセスピーク RSS、最大正のワーキングセット増加、総読み取り、書き込み、その他のプロセス I/O が含まれます
バリデータは、生サンプルからタイミング統計、RSS、I/O 合計、しきい値決定、全体のパス状態を個別に再計算します
ランナーオプションと終了コード
HotPDFPerformanceRunner.exe \
--output=report.json \
--thresholds=thresholds.json \
--warmup=3 \
--samples=30
--samples は 30 より低くできず、--warmup は 1 より低くできません
- 終了コード
0はすべてのワークロードが合格したことを意味します - 終了コード
1は設定、フィクスチャ、解析、または実行が失敗したことを意味します - 終了コード
2は少なくとも 1 つのパフォーマンスしきい値が失敗したことを意味します
しきい値の保守
p50、p95、観測 RSS、ワーキングセット増加、読み取りバイト、書き込みバイトに別々の Win32 と Win64 の上限を維持してください
生サンプル、マシン条件、フィクスチャアイデンティティ、実装意図、両プラットフォームでの繰り返し単独実行を確認した後にのみしきい値を改定してください
関連項目: スケーラブルでランダムアクセスな PDF ローディング、スパンベースの単純オブジェクト解析、レンダリング診断と操作テレメトリ