当堆没有扩展到最大大小时,Java堆空间错误

时间:2019-06-27 16:19:40

标签: java heap jvisualvm

当接收到过多的控制台输出时,我的Eclipse IDE快死了。

如果我将“运行/调试»控制台»控制台缓冲区大小(字符)”设置得太大,则由于“ Java堆空间”的原因,我开始收到“ IOConsole Updater”错误。

当我将jvisualvm附加到Eclipse进程时,我可以看到“ Used”保持循环,并逐渐接近“ Size”,直到最终崩溃为止,我不明白的是“ Size”甚至都无法接近“ Max”。

我已经告诉JVM(使用-Xmx2g)最多使用2GB(最大),但是它分配了1GB(大小),并且使用了300MB至1GB(已使用),但返回了“ Java堆空间”当该过程短暂地试图越过该虚假的1GB堆“大小”时。

是什么原因导致这种行为?

为什么“ IOConsole Updater”(有时是“ Trim Job”)报告“ Java堆大小”错误,而不是导致Java堆扩展到允许的最大大小?


环境(感谢@Dr博士的提醒),来自jvisualvm概述页面(省略了路径):

Host: localhost
Main class: org.eclipse.equinox.launcher.Main
Arguments: -os linux -ws gtk -arch x86_64 -showsplash /.../eclipse473a_linux64_20180903//plugins/org.eclipse.epp.package.common_4.7.3.20180405-1200/splash.bmp -launcher /.../eclipse473a_linux64_20180903/eclipse -name Eclipse --launcher.library /.../eclipse473a_linux64_20180903//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.551.v20171108-1834/eclipse_1630.so -startup /.../eclipse473a_linux64_20180903//plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar --launcher.appendVmargs -exitdata 205001f -product org.eclipse.epp.package.rcp.product -data /.../workspace -keyring /.../.eclipseauth/.keyring -showlocation -vm /.../java -vmargs -Dosgi.requiredJavaVersion=1.8 -Dosgi.instance.area.default=@user.home/eclipse-work

JVM: Java HotSpot(TM) 64-Bit Server VM (25.211-b12, mixed mode)
Java: version 1.8.0_211, vendor Oracle Corporation
Java Home: /.../java/x64/jdk1.8.0_211/jre
JVM Flags: <none>

0 个答案:

没有答案