4

Eclipse の標準よりも大きなヒープを必要とする ~800mb のヒープ ダンプを分析しようとしています。ただし、eclipse.ini ファイルに移動して-Xmx2g(または-Xmx2048m) を設定すると、「Java 仮想マシンの作成に失敗しました」というエラーが表示されます。

1) はい、十分なメモリがあります。2) 正確に -Xmx976m まで変更できます。3) スタンドアロンの MAT アナライザーを試してみましたが、-Xmx1024m で動作します。4) いいえ、ヒープを分析するには 1 GB では不十分です。OOM が発生します。

これは日食エラーです: 代替テキスト

これは MAT エラーです。 代替テキスト

(それらは同じだと思います。これは、MAT の例を見ることができるようにするためです)

私の現在のeclipse.ini(作業中)は次のとおりです。

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m

誰かがこれを理解していますか?

ありがとう!

f.

4

4 に答える 4

5

あなたが見ているこの問題は、私が想定しているWindows上にありますか?

同じ問題がありました。あなたの問題を読んだ後、私は再び掘りに出かけました。私は自分の問題の解決策を見つけました。もし同じなら試してみてください。Eclipse または MemoryAnalyzer の ini ファイルで、Xmx オプションから - を削除します。私のiniファイルは次のようになります

-vmargs
Xmx1536m

より多くのメモリを備えた魅力のように機能するようになりました。このスレッドの Alex2308 によるコメントに感謝しますhttp://troyworks.com/blog/2008/06/08/eclipse-jvm-terminated-exit-code-1/comment-page-1/#comment-80


私の以前の解決策は、Linux Live ディスクを入手することでした。Linux を起動すると、問題なく MAT に 2g を割り当てることができました。(Linux 用の MAT を入手してください)

最善の回避策ではありませんが、MAT フォーラムでバグを示すものを見つけることができませんでした。

于 2010-09-22T18:08:28.663 に答える
2

32ビットVMを使用しているようです。Java VMは、メモリスペース全体を単一のブロックに予約しようとします。つまり、システムDLLが配置されている場所によっては、それほど多くのメモリを取得できない場合があります。64ビットVM(明らかに64ビットCPUとOSが必要)に切り替えると、それが修正されるはずです。

于 2010-09-30T18:07:44.720 に答える
0

jvm パラメータをテストするための偽のアプリを作成しましたが、JVM が Windows でスワップしていないようで、少なくともスタートアップを形成していないことがわかりました。4 GB の RAM がありますが、残りの空き容量しか割り当てることができません。appps ごとに動作が異なるのは奇妙なことです。私の偽のアプリでは、Xmx1380m まで上げることができましたが、Eclipse では Xmx1024m までしか上がりませんでした。

エラーは次のようになります。

$ java -jar -Xmx1500m "C:\fakeapp.jar"
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

同じことですが、-Xmx1380g とアプリは正常に動作しました。

Unix でこの問題が発生したことは一度もありません。ヒープは、スワップに直接進んでも、指定したサイズで開始されます。

Windows でこの問題を抱えている人は、まず ctrl + shift + esc -> performance -> Physical Memory をチェックしてください。「利用可能」に示されているのとほぼ同じ値に Xmx を設定します。

起動する前に、JVM が本当に十分な空きメモリがあるかどうかをチェックしないようにする方法を誰かが教えてくれたら素晴らしいでしょう。私が使用している 1.5g は、わずか 800 MB のヒープ ダンプを処理しているため機能しましたが、もう少し大きかったら実行する場所がありません...

乾杯、

f.

于 2010-09-23T09:24:10.053 に答える