如何在 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
我正在尝试对大型文本文件执行 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