20

ヒープスペースに問題があります。私のプログラムは単純です。2つのアクター(送信と受信)があります。「送信」アクターは1秒あたり10000個のオブジェクトを「受信」に渡し、受信はそれらのオブジェクトを公開します。受信者が受信したオブジェクトはコンテナに保存されていますが、コンテナは毎秒空になっています。したがって、コンテナのスペースが不足する可能性はありません。420000オブジェクトの後、私の日食は「ioconsoleupdaterで問題が発生しました」というエラーが表示されます。そして、詳細に入ると、エラーが表示されます内部エラー::Javaヒープスペース

ヒープサイズを大きくしてみました。私のヒープサイズは8096mで、maxpermsizeは4096です。

visualVmを使用してコードを監視していますが、ヒープサイズをまったく超えていないことに気づいています。問題を解決する方法として完全に空白。

他にどのようなシナリオがそのようなエラーにつながる可能性があるかを誰かに教えてもらえますか?

4

4 に答える 4

45

IOConsoleはEclipseクラスであり、プログラムのクラスではありません。System.outにたくさん印刷していますか?[ウィンドウ]>[設定]で「コンソール」を検索します。すべてのコンソールバッファに何らかの制限を設定します。プログラムからの出力を減らしてみてください。代わりにファイルにログインするかもしれません。

于 2012-06-12T17:00:42.740 に答える
8

この問題は、コンソールのバッファーサイズが原因で発生しました。

解決 :

[コンソール]->[設定]を右クリックします

コンソールを制限します。

于 2015-02-06T05:04:18.100 に答える
5

次のJVM引数を追加して、メモリ使用量とGCが実行していることを把握できます。

-Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
于 2012-06-12T17:20:21.140 に答える
0

この問題に遭遇し、Eclipseのヒープとバッファーの設定を変更して問題を解決しようとしました。しかし、私はそれを解決することができませんでした。次に、プログラムにメモリリークがあり、時間の経過とともにスレッド数が増えることに気付きました。バグを修正した後、問題は解決しました。メモリリークが最も可能性の高い理由ではないと思いますが、考慮する必要があります。

于 2015-09-07T16:06:45.757 に答える