私は1.5Gのxmlファイルを持っていますが、私はDOMのJavaパーサーを使用しています。以下の問題について)。私の問題は、 "OutOfMemoryError:Java heap space"です。回答はすでに存在していますので、eclipse.ini -xmsと-xmxのサイズを両方とも8096mに変更し、ヒープサイズを監視するためにeclispeウィンドウにヒープステータスを表示します中古。私はこのコードを実行するときに、 "80m/8096m"を使用して "out memory"バグを投げてしまったのですが、なぜ8096m - 80mという空間が使われていないのでしょうか? 。メモリが8Gヒープサイズを割り当てられています
答えて
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自体がメモリ不足している場合、それは恐ろしく遅いを取得した後、クラッシュしていました。行ったことがある。それを見た。通常は、非常に大きなコードベースを開発したり調べたりしている場合に発生します。
あなたのソリューションに感謝してくれてありがとう!私はまだ2つの混乱していることがあります:1.どのように日食のjvmメモリを設定すると、より具体的になる可能性があります2. jvmと日食のメモリ、変数のjvmメモリに格納され、 – michael
1)http://stackoverflow.com/questions/15313393/how-to-increase-application-heap-size-in-eclipse。 2)あなたは2台の車を持っているようです。彼らは2つのガソリンタンクを持っています。 1台のガソリンタンクにガソリンを入れ、それは他のガソリンタンクにはありません。 Eclipseを実行するJVMは、アプリケーションを実行するJVMとは異なります。 –
Stevenに感謝します。 2つの簡単な質問1.私は日食で日食のメモリ使用を監視することができたので、jvmメモリの使用を監視する方法があります。 jvmのメモリを4Gに変更した後も、メモリが不足しています。つまり、domは大きなデータを処理しないかもしれません。 2.私はまた、jvmと日食のメモリの相違について明確な考えを得ることもできません。私にリンクを与えたりもっと説明したりできますか?あなたのアナログは混乱しています。 – michael
- 1. セグメンテーションフォールト、メモリが割り当てられていません
- 2. すでに割り当てられている変数にメモリを割り当てていますか?
- 3. Calloc()が以前に割り当てられたメモリを割り当てようとしています
- 4. 割り当てられたメモリのビュー
- 5. メモリがクラスに割り当てられている場合
- 6. Tensorflowはメモリが割り当てられていても割り当てできません。
- 7. メモリ割り当て
- 8. 割り当てメモリ
- 9. 割り当てメモリ
- 10. メモリ割り当て
- 11. メモリ割り当て
- 12. 割り当てメモリ**
- 13. デストラクタが割り当てられたメモリを削除しない
- 14. メモリ割り当てプロファイリング中にメモリ割り当てが増加し続ける
- 15. 演算子のオーバーロードにメモリが割り当てられていますか?
- 16. NodeJS 4.4が割り当てられたメモリを増やす
- 17. 内部メモリが既にヒープに割り当てられている場合、オブジェクトのメモリをヒープに割り当てる必要がありますか?
- 18. バイトを割り当てるメモリが不足しています
- 19. Cは割り当てられたメモリを数えます
- 20. 十分なメモリがありますが、mmapが失敗してメモリが割り当てられません。
- 21. ... nullで、割り当てられていませんが、割り当てられているようですか?
- 22. 割り当てられたメモリが回収される
- 23. Dalvikのメモリ割り当て
- 24. Magentoのメモリ割り当て
- 25. プロセスのメモリ割り当て
- 26. メモリ割り当てとループ
- 27. GtkTreeView treestoreメモリ割り当て
- 28. メモリの割り当て(C)
- 29. メモリ割り当て構造
- 30. iphoneのメモリ割り当て
"Bug"?いいえ、あなたのコードはそれをやっています。 Visual VMのようなものでコードをプロファイリングして、メモリが消費されている場所を確認してください。 – duffymo
eclipseがecliipse自体のためのVM引数ではなく、*あなたのプログラム*を実行するために使用するVM引数を変更する必要があります。これを行う方法については、http://stackoverflow.com/questions/4175188/setting-memory-of-java-programs-that-runs-from-eclipseを参照してください。 – wakjah
コードがまだOOMEを投げている場合は1.5 GB xmlと-Xmx8096mコード内に改善が必要なものがあることはほとんど確信しています。通常、巨大なデータ型の場合、SAX解析が優れています。また、どのようにXmxを指定していますか?私たちを見せてもらえますか? – SomeDude