java에서 RandomAccessFile을 사용하고 있습니다. 메모리 누수 문제가 있습니다. 나는 다음에 내 코드를 단순화 :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를위한 충분한 시간을 허용) 후 1백50메가바이트 조금 넘는이다.
내가 무엇을 놓쳤는가? 아니면 자바가 책임이 있습니까?
자바 *하지 * 오라클 JVM은 매우 reluctanty이기는하지만,하지 적어도 OS에 반환 메모리. –
@Michael, 고마워. –