質問: FOP、pdf生成に関する一定のパフォーマンスを得る 我々は、複数回の呼び出しでfop(v0.95)のパフォーマンスに関する問題を抱えています。我々は、いくつかの画像と独自のフォントを含むPDFを作成しています。 最初の呼び出しは他の呼び出しよりはるかに長く、それは私たちにとって問題です。いくつかの呼び出しの例を示します(時間はミリ秒です): * 通話1 - 経過時間= 13929 * 電話番号2 - 経過時間= 2817 * 電話番号3 - 経過時間= 3312 * 電話番号4 - 経過時間= 1629 * 電話番号5 - 経過時間= 1436 * 電話番号6 - 経過時間= 1356 * 電話番号7 - 経過時間= 911 * 電話番号8 - 経過時間= 1244 * コール#9 - 経過時間= 780 * コール#10 - 経過時間= 895 これを修正するためにいくつか試みました。 1. 代わりにdirectoryパラメータを使用してフォントを読み込む フォントタグを持つ各フォント 2. stric-configurationをtrueに設定する 3. 厳密検証をfalseに設定する 4. キャッシュファイル(cache-fileタグ)の使用 最初のコールのパフォーマンスを大幅に改善するものはありません。私たちの唯一の解決策は、コンストラクタで偽のpdfを生成して、最初の呼び出しがjvm startで人為的に行われるようにすることです。 あなたはパフォーマンスをスムーズにするための提案がありますか? 前もって感謝します。
回答: これは、JavaクラスのロードとJIT(ジャストインタイムコンパイル)の効果、いわゆるJVMウォームアップです。 JVMは、最適化の可能性を見て徐々にパフォーマンスを向上させます。あなたが100回の呼び出しを実行すると、最終的には、一定のパフォーマンスが見られるでしょう。これを変更するだけで何もできません。すべてのJavaアプリケーションに同じことが適用されます。 現在Server VM(64ビットCPUでデフォルト)を実行している場合は、Client VM(JVMパラメータとして-client)に切り替えることができます。それはあなたが少し見ている効果を軽減するかもしれませんが、多分そうではありません。