Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带FileReader的BufferedReader使用大量RAM_Java_Bufferedreader_Filereader - Fatal编程技术网

Java 带FileReader的BufferedReader使用大量RAM

Java 带FileReader的BufferedReader使用大量RAM,java,bufferedreader,filereader,Java,Bufferedreader,Filereader,我在非常大的文件(~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()

我在非常大的文件(~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
参数在linux上运行java程序时,出于某种原因,我的java程序需要大量RAM

从我删除
-Xmx
参数开始,java程序使用低内存


这是我以前的命令:

java -Xmx350g -jar MyJar.jar
这是我的新命令:

java -jar MyJar.jar

你在用台词干什么?@JonSkeet我更新了我的问题。我把每一行按制表符分开(我的文件是以制表符分隔的),然后检查是否需要这一行,然后用BufferedWriter将其打印到输出文件中。你不保存其中的任何部分吗?如果你能在这里提供一份报告,我们就可以试着复制它。(以及对文件中的内容的大致了解,以便我们可以生成类似的内容。)50g RAM?您在那里配置了多少堆?你所说的“用过的记忆”到底是什么意思?不要在你的问题中编辑答案/解决方案,而是创建一个答题贴。然后不要在标题中写上“已解决”,而是接受解决了你问题的答案。并解释如何使用
-Xmx
参数。可能传递的值设置不正确。我甚至不知道可以将350g分配给JVM。。。另外,可能垃圾收集器只有在占用一定百分比的空间后才会启动?@Asoub我在强服务器上运行它,所以当您有512g的RAM时,分配350g应该不会有问题。我想你对垃圾收集器的看法可能是对的,但我真的不知道。