我正在处理的应用程序同时使用堆内存仅为 BufferedReader 缓冲区(对于多个文件约为8Gb)过滤大文件。有足够的内存可以完成单个过滤操作,然后丢弃缓冲区:
try (BufferedReader br1 = new BufferedReader(new InputStreamReader(
new FileInputStream(file1), encoding), 1_000_000_000);
BufferedReader br2 = new BufferedReader(new InputStreamReader(
new FileInputStream(file2), encoding), 1_000_000_000);
...
BufferedReader br8 = new BufferedReader(new InputStreamReader(
new FileInputStream(file8), encoding), 1_000_000_000);
){
// ... filtering
}
此内存使用配置的最佳GC设置应该是什么?
当前的JVM选项非常标准:
-Xms31g
-Xmx31g
-XX:+UseCompressedOops
-XX:NewSize=12g
Java版本是9。