0

JSP で xml ファイルからプロファイル データを読み取ることを計画しています。

これで、それを読んで重要な情報を単一のセッション変数に保存するか、xml ファイルのセクション全体を jdom ドキュメントに入れて、それを単一のセッション変数に入れることができます。

あなたの経験では、データサイズは大きなまたは無視できるほど影響しますか?

4

3 に答える 3

3

JDOM 2.0.0 - 昨日リリースされた (私はメンテナーです) メモリ フットプリントが改善されました...入力ドキュメントの 10 倍未満のメモリを使用します。さらに、XML の解析時に「SlimJDOMFactory」を使用すると、使用量がさらに少なくなります。通常の 275KB のドキュメントは、SlimJDOMFactory を使用して 1.5Meg で解析されます。http://hunterhacker.github.com/jdom/jdom2/performance.htmlで JDOM 2.0.0 のパフォーマンス メトリックを参照し、SlimJDOMFactory を検索して、(遅い) より効率的なファクトリを使用して結果を取得します。

実際には、すべて入力データのサイズに依存するため、これはあなたの質問に決して答えません。私の経験では、偏見がありますが、小さなドキュメントの場合はすべてをメモリにロードし、大きなドキュメントの場合は「汗をかく」だけの方が簡単です。

于 2012-04-09T15:15:16.017 に答える
1

DOM を使用して XML をメモリに格納する場合には、経験則があります。XML ファイルのサイズ * 10. したがって、XML ファイルのサイズが 1MB の場合、それを格納するには 10MB のメモリが必要になります。

しかし、私の経験では、DOM ドキュメントをメモリに格納することはありません。ある学生がそれをやろうとしたことがありますが、XML ファイルは 50MB の大きさでした。メモリが不足しています。

あなたの場合、関連するすべての情報を保持できるクラスを作成し、xml を読み取ってクラスを埋めます。

プロファイル データをセッションに保存する必要は本当にありますか? 本当にいつも必要ですか?id または小さなクラスだけで十分な場合もあります。

于 2012-04-09T14:52:44.717 に答える
0

メモリに格納するオブジェクトが多いほど、空きヒープ メモリが少なくなります。これを回避する方法はありません。

実際にはアプリケーション ドメインに依存します。

しかし、一般的には、データソース (xml ファイル) とアプリケーション ドメイン モデルの間でキャッシュ ソリューションを使用します (ehCache は私の頭の上からの 1 つです)。

キャッシュは期限切れになるか、必要に応じてクリアされるため、オブジェクトとオブジェクトが占有するヒープ メモリを適切に制御できます。

于 2012-04-09T14:51:47.867 に答える