在eclipse java中通过三种不同的方法增加JVM堆内存失败
我在我的系统上运行一个32位JVM,并且使用eclipse for java。我编写了一个程序来获取堆大小,如下所示:在eclipse java中通过三种不同的方法增加JVM堆内存失败,java,eclipse,memory,jvm,heap-memory,Java,Eclipse,Memory,Jvm,Heap Memory,我在我的系统上运行一个32位JVM,并且使用eclipse for java。我编写了一个程序来获取堆大小,如下所示: public static void main(String[] args) { long heapSize = Runtime.getRuntime().totalMemory(); System.out.println("current heap size: " + heapSize / 1000000f + " m"
public static void main(String[] args) {
long heapSize = Runtime.getRuntime().totalMemory();
System.out.println("current heap size: " + heapSize / 1000000f + " m");
long heapMaxSize = Runtime.getRuntime().maxMemory();
System.out.println("heapMaxsize: " + heapMaxSize / 1000000f + " m");
long heapFreeSize = Runtime.getRuntime().freeMemory();
System.out.println("heap free size: " + heapFreeSize / 1000000f + "m");
System.getProperty("sun.arch.data.model");
System.out.println("JVM is : " + System.getProperty("sun.arch.data.model"));
}
current heap size: 259.52255 m
heapMaxsize: 1037.9592 m
heap free size: 258.0899 m
JVM is : 32
结果如下:
public static void main(String[] args) {
long heapSize = Runtime.getRuntime().totalMemory();
System.out.println("current heap size: " + heapSize / 1000000f + " m");
long heapMaxSize = Runtime.getRuntime().maxMemory();
System.out.println("heapMaxsize: " + heapMaxSize / 1000000f + " m");
long heapFreeSize = Runtime.getRuntime().freeMemory();
System.out.println("heap free size: " + heapFreeSize / 1000000f + "m");
System.getProperty("sun.arch.data.model");
System.out.println("JVM is : " + System.getProperty("sun.arch.data.model"));
}
current heap size: 259.52255 m
heapMaxsize: 1037.9592 m
heap free size: 258.0899 m
JVM is : 32
现在我需要增加堆大小内存,因为我的大多数程序都在抱怨堆大小内存。我尝试了3种方法来更改和增加堆大小,但失败了:
我还应该提到的是,我的计算机的总内存是8G,我可以从任务管理器中看到70%以上的内存一直在使用
方法一>Java配置>Java>视图>运行时参数>设置此值:-Xmx3g反馈:无
方法二>转到特定程序>运行配置>参数>-Xmx2048m反馈:
初始化VM时出错
无法为2097152KB对象堆保留足够的空间
方法3>Eclipse>Windows>Preference>Java>Installed JRE>Edit>并在VM参数中输入:-Xms256M-Xmx2048M反馈:
初始化VM时出错
无法为2097152KB对象堆保留足够的空间
问题:我不知道我还能做什么,我应该如何增加堆大小
我解释过的内存使用量超过70%对堆总是有影响吗
请帮帮我 您正在运行32位版本的JVM。要访问更多内存,您需要切换到64位JVM 从: 为什么我不能用32位JVM获得更大的堆? 32位JVM的最大理论堆限制为4G。由于各种额外的限制,例如可用交换、内核地址空间使用、内存碎片和VM开销,在实践中,限制可能要低得多。在大多数现代32位Windows系统上,最大堆大小将在1.4G到1.6G之间。在32位Solaris内核上,地址空间限制为2G。在运行32位VM的64位操作系统上,最大堆大小可能更大,在许多Solaris系统上接近4G
您正在运行32位版本的JVM。要访问更多内存,您需要切换到64位JVM 从: 为什么我不能用32位JVM获得更大的堆? 32位JVM的最大理论堆限制为4G。由于各种额外的限制,例如可用交换、内核地址空间使用、内存碎片和VM开销,在实践中,限制可能要低得多。在大多数现代32位Windows系统上,最大堆大小将在1.4G到1.6G之间。在32位Solaris内核上,地址空间限制为2G。在运行32位VM的64位操作系统上,最大堆大小可能更大,在许多Solaris系统上接近4G
您可以使用此属性直接在环境变量中设置,它也将应用于eclipse:_JAVA_OPTIONS:-Xms512m-Xmx2048m类似于此您不能升级到64位VM吗。32位有限制@该死的,我怎么做?我是在第三种情况下做的,不是吗?@Reihan_amn不是在虚拟机参数中。将其添加到系统变量中。。点击这个链接。。。我想它可以帮助你。。也可以参考此链接:您可以使用此属性直接在环境变量中设置,它也将应用于eclipse:_JAVA_OPTIONS:-Xms512m-Xmx2048m类似于此您不能升级到64位VM吗。32位有限制@该死的,我怎么做?我是在第三种情况下做的,不是吗?@Reihan_amn不是在虚拟机参数中。将其添加到系统变量中。。点击这个链接。。。我想它可以帮助你。。也请参考此链接:我升级到64位JVM,但仍然无法扩展到4G堆空间。我还收到了一个关于“Java选项”的新问题:
当前堆大小:514.8508 m
堆大小:1908.9326 m
堆自由大小:509.4611 mJVM is:64
拾取的Java选项:-Xms512m-Xmx2048m
更改为-Xms2048m-Xmx4096m
您是指默认的JRE参数还是默认的JRE参数_Java_选项?我升级到64位JVM,但仍然无法扩展到4G堆空间。我还收到了一个关于“Java选项”的新问题:当前堆大小:514.8508 m
堆大小:1908.9326 m
堆自由大小:509.4611 mJVM is:64
拾取的Java选项:-Xms512m-Xmx2048m
更改为-Xms2048m-Xmx4096m
您是指默认的JRE参数还是默认的JRE参数_Java_选项?