2016-07-17 18 views
1

私は1.5Gのxmlファイルを持っていますが、私はDOMのJavaパーサーを使用しています。以下の問題について)。私の問題は、 "OutOfMemoryError:Java heap space"です。回答はすでに存在していますので、eclipse.ini -xmsと-xmxのサイズを両方とも8096mに変更し、ヒープサイズを監視するためにeclispeウィンドウにヒープステータスを表示します中古。私はこのコードを実行するときに、 "80m/8096m"を使用して "out memory"バグを投げてしまったのですが、なぜ8096m - 80mという空間が使われていないのでしょうか? 。メモリが8Gヒープサイズを割り当てられています

+3

"Bug"?いいえ、あなたのコードはそれをやっています。 Visual VMのようなものでコードをプロファイリングして、メモリが消費されている場所を確認してください。 – duffymo

+3

eclipseがecliipse自体のためのVM引数ではなく、*あなたのプログラム*を実行するために使用するVM引数を変更する必要があります。これを行う方法については、http://stackoverflow.com/questions/4175188/setting-memory-of-java-programs-that-runs-from-eclipseを参照してください。 – wakjah

+0

コードがまだOOMEを投げている場合は1.5 GB xmlと-Xmx8096mコード内に改善が必要なものがあることはほとんど確信しています。通常、巨大なデータ型の場合、SAX解析が優れています。また、どのようにXmxを指定していますか?私たちを見せてもらえますか? – SomeDude

答えて

0

I wonder why there is clearly huge space not used, i.e. "8096m - 80m ", but still get to out of memory.

あなたは何か誤解されています。そして、(IMO)最も考えられるのは、IDE(Eclipse)で使用されているメモリと、アプリケーションの実行に使用されたメモリを混同しているということです。

あなたが何か変わったことをしないと、あなたのアプリケーションはヒープパラメータがIDEヒープパラメータとは独立した別個のJVMで実行されます。当然、(私にとっては)実際のところ、Eclipse IDEプロセスのメモリ使用量は小さいです...なぜなら、これはアプリケーションが実行されていた場所ではないからです。

Eclipseのヒープパラメータを調整することで、アプリケーションのJVMヒープパラメータに違いはありません!実際に行う必要があるのは、アプリケーションのEclipseランチャ設定でヒープパラメータを設定することです。 Eclipse内で。または、コマンドプロンプトから手作業でアプリケーションを起動します。


しかし、この場合はうまくいくとは思っていません。私は非常に驚いた 8GBのJavaヒープのDOMとして1.5 GBのXMLファイルを表すことができる場合。その形式の表現のオーバーヘッドは大きすぎます。


1 - EclipseのIDE自体がメモリ不足している場合、それは恐ろしく遅いを取得した後、クラッシュしていました。行ったことがある。それを見た。通常は、非常に大きなコードベースを開発したり調べたりしている場合に発生します。

+0

あなたのソリューションに感謝してくれてありがとう!私はまだ2つの混乱していることがあります:1.どのように日食のjvmメモリを設定すると、より具体的になる可能性があります2. jvmと日食のメモリ、変数のjvmメモリに格納され、 – michael

+0

1)http://stackoverflow.com/questions/15313393/how-to-increase-application-heap-size-in-eclipse。 2)あなたは2台の車を持っているようです。彼らは2つのガソリンタンクを持っています。 1台のガソリンタンクにガソリンを入れ、それは他のガソリンタンクにはありません。 Eclipseを実行するJVMは、アプリケーションを実行するJVMとは異なります。 –

+0

Stevenに感謝します。 2つの簡単な質問1.私は日食で日食のメモリ使用を監視することができたので、jvmメモリの使用を監視する方法があります。 jvmのメモリを4Gに変更した後も、メモリが不足しています。つまり、domは大きなデータを処理しないかもしれません。 2.私はまた、jvmと日食のメモリの相違について明確な考えを得ることもできません。私にリンクを与えたりもっと説明したりできますか?あなたのアナログは混乱しています。 – michael

関連する問題