HTOP에서 JVM 프로세스가 실제로 차지하는 RAM 용량을 나타내는 RES 값 (상주 크기)을 볼 수 있습니다.Java로 현재 JVM의 실제 RAM 사용량 받기
이제 순수한 Java 만 사용하여 값을 얻고 싶습니다. 당신이 나에게 그것이 가능하지 않다고 말하면 괜찮습니다.
제가 htop에서 887M의 RES 값을 보여줍니다 응용 프로그램으로 만든 모든 시도를 설명하자, MemoryMXBean에를 통해 최선을 다하고 HeapMemory 및 비 Heapmemory 결합
- 모든 최선을 다하고 메모리를 추가하는 나에게 726M
- 를 제공을 모든 ManagementFactory.getMemoryPoolMXBeans의()() 나에게 737M
- runtime.totalMemory을 준다 내가 시도 할 수 밖에 무엇 515M
어떤 아이디어를 준다?
당신에게 이것을 줄 순수 자바 기능은 없습니다. 당신은 당신이 언급 한 회계에 포함되지 않은 메모리 매핑 된 파일, 스레드 스택, 공유 라이브러리 및 직접 메모리를 잃어 버렸다고 가정 할 때, 어떤 가정과 함께 될지를 예측할 수 있습니다. 내가 쓰는 일종의 프로그램에서, 메모리 매핑 된 파일은 당신이 그것을 올바르게 사용한다면 다른 모든 것을 능가 할 수있다. –
그래서 본질적으로 맨 위에있는 외부 도구를 사용하거나 JNI 마법을 사용해야합니다. – Traubenfuchs
일반적으로 외부 프로그램에서 사용자의 사용량을 모니터링하게되지만이 번호를 기반으로 응용 프로그램 내에서 취할 조치는 무엇입니까? 참고 : 숫자가 낮 으면 좋지 않을 수 있으며 높은 숫자는 좋은 것일 수 있습니다. –