如何在 netbeans 中增加 java 堆内存?

How to increase java heap memory in netbeans?

我正在尝试对大型文本文件执行 java 脚本,但出现此错误

     java.lang.OutOfMemoryError: Java heap space

我尝试在我的 netbeans 项目中这样做:

Project Properties -> Run -> VM Options -> -Xmx2048m -Xms1024m

我也试过了:

System -> Programs -> Java -> Java -> View -> Execution Parameters -> -Xincgc -Xmx2048M

但我没有解决问题..有什么建议吗?

字符串存储可能非常昂贵。使用 ~ 80 个字符长的随机字符串,3 000 000 个字符串可以消耗 almoust 1GB

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    String base = RandomStringUtils.random(80);
    long i = 0;
    try {
        while (i < 3e6) {
            list.add(base + i++);
        }
    } finally {
        System.out.println("Count:" + list.size());
        System.out.println("Memory:" + Runtime.getRuntime().totalMemory() / 1024d / 1024d);
    }
}

输出: Count:3000000 Memory:981.5

尝试使用我在此处制作的相同 try-finally 块将您正在读取文件的代码段包装起来。当错误弹出时,您将获得此时消耗的大约内存量,以及您已经读取的文件的百分比。这会让您了解您还需要多少内存。

此外,您将知道您的 -Xmx 指令是否有效,因为如果它会在大约 500mb 左右崩溃,则它要么被 netbeans 忽略,要么系统没有可用内存。

我建议更改您的代码,此处描述了另一种选择:http://wiki.netbeans.org/FaqSettingHeapSize