我有一个堆空间问题。 我的程序很简单。 有两个演员(发送和接收)“发送”演员通过每秒10000个对象“接收”,并获得出版这些对象。 接收器接收到的对象被保存在容器中,但该容器被排空每一秒。 因此,没有机会容器运行的空间。 现在,经过42万级的对象我的日食鞋的错误说“ioconsole更新遇到问题。” 当我转到到细节我看到错误内部错误:: Java堆空间
我曾尝试增加堆大小。 我的堆大小为8096米和MaxPermSize参数为4096
我使用VisualVM的监视我的代码,我注意到,这是不超过堆大小atall。 完全空白,如何解决这个问题。
有一个人可以让我知道还有什么其他可能出现的情况可能会导致这样的错误。
IOConsole是一个Eclipse类,而不是你的程序的。 您正在打印到System.out很多吗? 在窗口>首选项搜索“控制台”。 设置某种限制的所有控制台缓冲区。 尝试打印从程序更少的输出。 也许记录到文件来代替。
您可以添加以下JVM参数传递给给你的内存使用的一个想法,什么GC做:
-Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
我遇到的问题,我试图在Eclipse改变堆和缓冲区设置来解决这个问题。 但是我没能解决它。 然后,我注意到有在我的程序内存泄漏和线程数的时间而增加。 我已经修复了这一错误后,问题得到解决。 我认为内存泄漏是不是它最可能的原因,但也应予以考虑。