정말 매우 간단한 질문입니다. RAM이 제한된 내 개발 컴퓨터(8GB RAM, Win 7 x64, 8GB 페이지 파일)에서 사용 가능한 RAM이 부족하면 프로그램이 먼저 느려지기 시작하고 결국 충돌이 발생합니다. 대부분의 경우 JVM이 먼저 충돌하고 매우 행복하게 작동합니다. 이것이 어떻게 가능한지? 페이지 파일이 전혀 없는 것과 같지만 중고 RAM JVM(때때로 다른 프로그램도)의 8번째 기가에 도달하면 거의 즉시 충돌이 발생합니다.
예, 저는 주로 HW에 의해 실행되는 모든 페이징 메커니즘을 잘 알고 있습니다. 이는 페이지 파일이 사용 중이거나 존재하는 것에 대해 아무것도 모르는 것처럼 사용 가능한 RAM이 충분한 것처럼 페이지 파일을 사용하여 다시 한 번 작동해야 합니다. 그렇다면 실제로 매우 다른 행동을 관찰하는 이유는 무엇입니까?
답변1
jprofiler를 실행하고 힙 메모리를 조사할 수 있습니까? 또한 실행 중인 Java 프로그램에 대한 메모리 요구 사항이 명확하지 않습니다. 일반적으로 8GB의 RAM이 괜찮은 것으로 간주됩니다. Java 프로그램이 많은 스레드를 생성하고 스레드가 종료되지 않으면 이러한 모든 문제가 발생할 수 있습니다. 생성된 객체의 양과 스레딩 특성은 Java 프로그램을 확인하십시오.