2012-06-12 8 views
13

ヒープスペースに問題があります。私のプログラムは簡単です。 2人の俳優(&を送ってください)があります。 "送ってください"俳優が1秒間に10000個のオブジェクトを "受け取る"ように渡していて、受信するとそれらのオブジェクトを公開します。受け取ったレシーバはコンテナに保存されていますが、コンテナは毎秒空になっています。だから、コンテナのスペースが足りなくなってしまうことはありません。今では420000個のオブジェクトの後に私の日食の靴は "ioconsoleアップデータに問題が発生しました"というエラーが表示されます。そして私が詳細に移動すると、エラーが表示されます内部エラー:: Javaのヒープスペースヒープスペースがなくなりました

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

visualVmを使用して自分のコードを監視しています。私はそれがヒープサイズatallを超えていないことに気付いています。問題を解決する方法としては完全に空白です。

他の可能性のあるシナリオがこのようなエラーにつながる可能性があることを教えていただけますか?

答えて

35

IOConsoleはあなたのプログラムではなく、Eclipseクラスです。 System.outにたくさん印刷していますか? Window> Preferencesで "console"を検索します。すべてのコンソールバッファにある種の制限を設定します。プログラムから出力を少なくしてみてください。代わりにファイルにログすることがあります。

-Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps 
+0

これはlagback.xmlファイルによって行われたため、printf行を見つけることができませんでした。そのファイルの状態が変更されると、ログ行が減り、エラーが減少しました。ありがとうたくさん.. – Rags

+0

'固定幅コンソール'の解決を解除しました... – KillBill

5

あなたはあなたのGCが何をしているか、メモリ使用量の考え方とを与えるために、以下のJVM引数を追加することができます。

ソリューション:

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

制限コンソール。

3

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

0

問題が発生しました。私は、eclipseでヒープとバッファの設定を変更して解決しようとしました。しかし、私はそれを解決することができませんでした。その後私のプログラムにメモリリークがあり、スレッド数が増加していることがわかりました。この問題は私がバグを修正した後に解決されました。私は、メモリリークはそれのもっとも有望な理由ではないと考えていますが、それは考慮する必要があります。

関連する問題