带有 FileReader 的 BufferedReader 使用大量 RAM
BufferedReader with FileReader uses a lot of RAM
我在非常大的文件 (~100g) 上使用 BufferedReader
和 FileReader
。
这是我使用的代码:
BufferedReader reader = new BufferedReader(new FileReader("file path"));
BufferedWriter writer = new BufferedWriter(new FileWriter("output file"));
String line;
while ((line = reader.readLine()) != null) {
// check if i need this line, and if i need it, i print it
writer.write(line);
writer.newLine();
}
writer.close();
reader.close();
当我 运行 一开始在我的文件上使用它时,它使用的内存量很少,但使用的内存会慢慢增加(可以轻松使用超过 50GB 的 RAM)。
为什么会这样?而且,我能以某种方式修复它吗?
我看到当我从命令行使用 -Xmx
参数 运行 java 在 linux 上编程时,由于某种原因它使我的 java 程序需要大量内存。
从我删除 -Xmx
参数开始,java 程序使用低内存。
这是我的旧命令:
java -Xmx350g -jar MyJar.jar
这是我的新命令:
java -jar MyJar.jar
我在非常大的文件 (~100g) 上使用 BufferedReader
和 FileReader
。
这是我使用的代码:
BufferedReader reader = new BufferedReader(new FileReader("file path"));
BufferedWriter writer = new BufferedWriter(new FileWriter("output file"));
String line;
while ((line = reader.readLine()) != null) {
// check if i need this line, and if i need it, i print it
writer.write(line);
writer.newLine();
}
writer.close();
reader.close();
当我 运行 一开始在我的文件上使用它时,它使用的内存量很少,但使用的内存会慢慢增加(可以轻松使用超过 50GB 的 RAM)。
为什么会这样?而且,我能以某种方式修复它吗?
我看到当我从命令行使用 -Xmx
参数 运行 java 在 linux 上编程时,由于某种原因它使我的 java 程序需要大量内存。
从我删除 -Xmx
参数开始,java 程序使用低内存。
这是我的旧命令:
java -Xmx350g -jar MyJar.jar
这是我的新命令:
java -jar MyJar.jar