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

时间:2016-09-29 07:37:44

标签: java out-of-memory

我正在尝试在大型文本文件上执行java脚本,但它给了我这个错误

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

我试图在我的netbeans项目上做到这一点:

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

我也试过了:

{{1}}

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

2 个答案:

答案 0 :(得分:0)

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

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);
    }
}

输出:     数:3000000     记忆:981.5

尝试使用我在此处创建的try-finally块来将您的代码包装在您正在阅读文件的位置。当弹出错误时,您将获得此时消耗的大约几个内存,以及您已经管理的文件的百分比。这将让您了解需要多少内存。

此外,你会知道你的-Xmx指令是否有效,因为如果它会崩溃,可以说500mb它可以被netbeans忽略,或者系统没有可用的内存。

答案 1 :(得分:0)

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