我遇到堆空间问题。我的程序很简单。有两个actor(发送和接收)“发送”actor每秒传递10000个对象以“接收”,并接收发布这些对象。接收器接收的对象被保存在容器中,但容器每秒都被清空。因此容器没有空间耗尽。现在在420000个对象后,我的eclipse鞋出现了一个错误,“ ioconsole updater遇到了问题”。当我转到细节时,我看到错误内部错误:: Java堆空间
我尝试过增加堆大小。 我的堆大小是8096米,maxpermsize是4096
我正在使用visualVm监视我的代码,我注意到它并没有超过堆大小。如何解决问题完全空白。
有人可以告诉我其他可能导致此类错误的情况。
答案 0 :(得分:41)
IOConsole是一个eclipse类,而不是你的程序。您是否经常打印到System.out?在Window>下首选项搜索“控制台”。为所有控制台缓冲区设置某种限制。尝试从程序中打印较少的输出。也许改为登录文件。
答案 1 :(得分:5)
您可以添加以下JVM参数,以便了解内存使用情况以及GC正在执行的操作:
-Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
答案 2 :(得分:4)
由于控制台中的缓冲区大小,已发生此问题。
解决方案:
右键单击控制台 - >首
限制控制台。
答案 3 :(得分:0)
我遇到了问题,我尝试通过更改eclipse中的堆和缓冲区设置来解决它。但是我无法解决它。然后我注意到我的程序中存在内存泄漏,并且线程数量随时间增加。修复bug后问题解决了。我认为内存泄漏不是最可能的原因,但应该加以考虑。