JavaでRandomAccessFileを使用しています。メモリリークの問題があります。コードを次のように簡略化しました。
public static void main(String[] args) throws IOException, InterruptedException
{
RandomAccessFile r = new RandomAccessFile(new File("test.dat"), "rw");
r.write(new byte[150000000], 0, 150000000);
r.getFD().sync();
r.close();
r = null;
while (true) { Thread.sleep(1000); }
}
このコードを実行した後 (および GC に十分な時間を与えた後)、レポートされたアプリケーションのメモリ使用量は 150MB 強です。
私は何を逃したのですか?それともJavaのせいですか?