サーバー上で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と同様に)スレッドセーフであるはずです。スレッド内でインスタンスを作成することをお勧めします。スレッド間でインスタンスを共有しようとしないでください。
