在eclipse java中通过三种不同的方法增加JVM堆内存失败

在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"

我在我的系统上运行一个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");

    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 m
JVM is:64
拾取的Java选项:-Xms512m-Xmx2048m
更改为
-Xms2048m-Xmx4096m
您是指默认的JRE参数还是默认的JRE参数_Java_选项?我升级到64位JVM,但仍然无法扩展到4G堆空间。我还收到了一个关于“Java选项”的新问题:
当前堆大小:514.8508 m
堆大小:1908.9326 m
堆自由大小:509.4611 m
JVM is:64
拾取的Java选项:-Xms512m-Xmx2048m
更改为
-Xms2048m-Xmx4096m
您是指默认的JRE参数还是默认的JRE参数_Java_选项?