用完堆空间

我有堆空间问题。 我的程序很简单。 有两个actor(发送和接收)“发送”actor每秒传递10000个对象来“接收”,并接收发布这些对象。 接收器接收的对象被保存在容器中,但容器每秒都被清空。 因此容器没有空间耗尽。 现在在420000个对象后,我的eclipse鞋出现了一个错误,说“ ioconsole updater遇到了问题” 。 当我转到细节时,我看到错误内部错误:: Java堆空间

我试过增加堆大小。 我的堆大小是8096米,maxpermsize是4096

我正在使用visualVm监视我的代码,我注意到它没有超过堆大小。 如何解决问题完全空白。

有人可以让我知道其他可能的情况会导致这样的错误。

IOConsole是一个eclipse类,而不是你的程序。 你经常打印到System.out吗? 在Window> Preferences下搜索“console”。 为所有控制台缓冲区设置某种限制。 尝试从程序中打印较少的输出。 也许记录到文件。

您可以添加以下JVM参数,以便了解内存使用情况以及GC正在执行的操作:

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

由于控制台中的缓冲区大小,已发生此问题。

方案:

右键单击控制台 – >首选项

限制控制台。

我遇到了问题,我尝试通过更改eclipse中的堆和缓冲区设置来解决它。 但是我无法解决它。 然后我注意到我的程序中存在内存泄漏,并且线程数量随时间增加。 修复bug后问题解决了。 我认为内存泄漏不是最可能的原因,但应该考虑它。