2012-04-09 2 views
0

JSPのXMLファイルからプロファイルデータを読み込む予定です。jdom文書のサイズと単一変数のサイズ

私はそれを読んで、重要な情報を1つのセッション変数に格納するか、jmlドキュメントのxmlファイルのセクション全体を1つのセッション変数に入れることができます。

ご使用の環境では、データサイズに大きな影響はありませんか?

答えて

1

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

私の経験では、決してメモリにDOM文書を保存することはありません。いったん何人かの学生がそれをやろうとしましたが、XML-Fileは50MB大きかったので、どうなりますか?私たちは記憶を使い果たしました。

私は関連するすべての情報を保持できるクラスを作成し、xmlを読んでクラスを記入します。

本当にプロファイルデータをセッションに保存する必要がありますか?あなたは本当にそれをいつも必要としていますか?時にはそれはちょうどidまたは小さいクラスに十分です。

+0

大丈夫、経験則のおかげで。私はそれをする必要はありません、私はちょうど簡単になります。私のXMLファイルは最大1Kバイトです。 異なるパーサーに違いはありますか? –

+0

セッションデータの経験則もありますか? –

+0

私は常にxmlファイルから同じデータを読み込まないようにしたい。 –

0

メモリに保存するオブジェクトが増えれば、空きメモリが少なくて済むようになります。その周りには方法がありません。

実際にアプリケーションドメインによって異なります。

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

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

+0

基本的には、データをjdomオブジェクトに格納し、データをvarオブジェクトに格納することの違いを意味します。 –

+0

ええ、それはあなたが必要なものによって異なります。 XMLの一部だけをメモリに格納することで逃れることができれば、間違いなくそれを実行する必要があります。私の経験では、XMLマークアップは実行時にほとんど必要とされません。データを永続化するために使用されます。 – Svilen

2

JDOM 2.0.0 - 私は昨日(私はメンテナーです)、改善されたメモリフットプリントを持っています...それは入力ドキュメントの10倍以下のメモリを使用します。さらに、XMLを解析するときに 'SlimJDOMFactory'を使用すると、より少ないリソースしか使用できなくなります。典型的な275KB文書は、SlimJDOMFactoryを使用して1.5Megで解析されます。​​のJDOM 2.0.0のパフォーマンスメトリックを参照し、(より遅い)より効率的な工場を使用して結果を得るためにSlimJDOMFactoryを検索してください。

これは決してあなたの質問に答えるものではありません。なぜなら、実際は入力データのサイズに依存するからです。私の経験は偏っていますが、小さな文書の場合は、すべてをメモリにロードして、大きなものを「汗」にする方が簡単です。

関連する問題