サーバー上でJPedalのパフォーマンスを最適化するヒント
このチュートリアルでは、JPedalのパフォーマンスを調整するための有用なテクニックをいくつか紹介します。
1. PDFファイルを開く際は、可能な限りランダムアクセスの開く方法(ファイルまたは文字列)を使用し、URLやbyte[]は使用しない
PDFファイルはランダムアクセスを使用してアクセスされるように設計されています。JPedalがランダムアクセス経由でアクセスできる場合、ファイル構造内を自由に移動できるため、これが推奨される方法です。byte[]メソッドはロード後は高速ですが、より多くのメモリが必要で、PDF全体を最初にロードする必要があります。URLメソッドはPDFファイル全体を読み込んでローカルファイルにキャッシュする必要があります。
2. PDFファイルをデコードする際はローカル画像をメモリに保持する
デフォルトでは、16384バイトを超えるサイズの画像はすべて、必要になるまでメモリに保持されるのではなく、ローカルの暗号化ファイルにキャッシュされます。この設定は、静的変数PdfFileReader.alwaysCacheInMemoryの値を変更することで変更できます。値を-1にすると、すべてをメモリに保持します。
このページ には、PDFを画像にメモリ内で変換する方法を示すコード例があります。
3. ファイルサイズよりも速度を優先して画像出力を最適化する
PDFを任意の画像形式に変換する際、JPedalのデフォルト設定ではより小さい出力画像ファイルを作成します(これは低速です)。ファイルサイズが重要でない場合は、これを変更できます。これはPDFから画像への出力方法を示す例 で説明されています。
4. 必要以上に大きな画像を作成しない
Javaにおける最大のパフォーマンスヒットは、一般的にレンダリング用のBufferedImageの作成であり、BufferedImageが大きいほど時間がかかります。JPedalには、画像を生成するためのすぐに実行できるクラスが2つ含まれており、これらはsettings に文書化されています。
5. マルチスレッドの使用
メモリが許す限り、ConvertPagesToImages および他の例はスレッドセーフであるはずです(PdfDecoderServerと同様)。スレッド内でインスタンスを作成することをお勧めします。スレッド間でインスタンスを共有しようとしないでください。
