私は基本的な Struts ベースのアプリケーションに取り組んでおり、メモリに大きなスパイクが発生しています。ユーザーごとに 1 つの要求が JVM ヒープ メモリに 3MB 追加されることを通知する監視ツールがあります。早期のガベージ コレクションを促進したり、メモリを解放したり、パフォーマンスを向上させるためのヒントはありますか?
アプリケーションは基本的な Struts アプリケーションですが、JSP レポートの行数が多いため、多数のオブジェクトが作成される場合があります。しかし、それはあなたが前に見たことがないものではありません。
- 一連のデータベース クエリを実行します。
- 直列化された POJO オブジェクト Bean を作成します。これは行を表します。
- 配列リストに行を追加します。
- アクションが呼び出されたときに、配列リストをフォーム オブジェクトに設定します。
- JSP ロジックは ActionForm からのリストを繰り返し処理し、データがユーザーに表示されます。
注:
1. フォームはセッション スコープ内にあり、データの配列リストである可能性があります (これは問題である可能性があります)。2. POJO Bean には、またはデータ
が混在する 20 ほどのフィールドが含まれます。String
BigDecimal
レポートには、300 から 1200 程度の行を含めることができます。したがって、少なくともその数のオブジェクトが作成されます。