プリフライト ストレス テスト

tools\Run-PreflightStress.ps1 は、 HotPDFPreflight コンソールツールをコンパイルし、大量の PDF が入ったディレクトリに対して 1 ファイルずつ実行して、ファイルごとのレポートとログを書き出し、 JSON / Markdown 形式のパフォーマンスベースラインを記録します。各ファイルはタイムアウトの下で隔離されるため、 処理の重い PDF が 1 つあっても実行全体が止まることはありません 既定のタイムアウトは 120 秒で、実装上の制限に近い大きなファイルを完走させつつ、病的な入力は引き続き隔離できます

デフォルトの実行

powershell -NoProfile -ExecutionPolicy Bypass -File tools\Run-PreflightStress.ps1

デフォルトのサンプルルートは D:\PDFdoc\PDF-Samples です。実行の出力は Tests\PreflightStress\runs\ の下に書き込まれますが、レポートとログはマシン固有であるため、Git では無視されます

カスタムサンプルルート

powershell -NoProfile -ExecutionPolicy Bypass -File tools\Run-PreflightStress.ps1 `
  -SampleRoot D:\PDFdoc\PDF-Samples `
  -OutputRoot D:\Temp\HotPDFPreflightStress `
  -MaxFiles 1000 `
  -MaxBytes 5242880 `
  -MaxSecondsPerFile 120

メトリクス

ベースラインは、入力ファイルの総数、選択されたファイル数、合計バイト数、選択された最大および最小の入力サイズ、処理済み / 合格 / 失敗 / タイムアウトの数、経過秒数、1秒あたりのファイル数、1秒あたりのMiB、出力形式、選択されたプリセット、ファイルごとのCSVパス、レポートルート、およびログルートをキャプチャします

失敗の解釈

失敗した行またはタイムアウトした行は、1 つの PDF が現在の実行制限内で処理できなかったことを意味します。スクリプトはベースラインを書き込み、ファイルが 1 つでも失敗またはタイムアウトした場合には終了コード 1 を返します。証拠は保持しつつ、回帰ジョブが失敗した実行を検出できるようにするためです

実行ごとに新しい OutputRoot を選択してください。レポートディレクトリが空でない場合は拒否されるため、古いレポートが後続の実行を成功に見せかけることはありません。過去のレポートも利用可能なまま残ります

関連トピック