MemoryUsage

MemoryUsage (메모리 사용량 스냅샷)

메모리 사용량의 스냅샷을 나타내는 클래스예요. Java 가상 머신의 개별 메모리 풀이나 힙·non-heap 메모리 전체의 사용량 정보를 담아요.

출처: Java API Reference

본문

MemoryUsage 객체는 네 가지 값을 담아요:

  • init — 시작 시 VM이 메모리 관리를 위해 운영체제에 요청하는 초기 메모리량(바이트). 시간이 지나며 VM이 추가 메모리를 요청하거나 시스템에 반환할 수 있어요. 값이 정의되지 않을 수도 있어요.
  • used — 현재 사용 중인 메모리량(바이트).
  • committed — VM이 사용 가능함을 보장하는 메모리량(바이트). 시간에 따라 늘거나 줄 수 있고, VM이 시스템에 메모리를 반환하면 committedinit보다 작아질 수 있어요. 항상 used보다 크거나 같아요.
  • max — 메모리 관리에 사용할 수 있는 최대 메모리량(바이트). 정의되지 않을 수 있고, 정의되어 있으면 시간에 따라 변할 수 있어요. max가 정의되어 있으면 usedcommitted는 항상 max 이하예요.

used > committed가 되도록 사용 메모리를 늘리려는 메모리 할당은, 설령 used <= max를 만족하더라도 실패할 수 있어요(예: 시스템의 가상 메모리가 부족한 경우).

MemoryUsage는 from 메서드에 명시된 대로 CompositeData로 매핑되어 MXBean을 통해 전달될 수 있어요. Java 1.5부터 제공돼요.

더 알아보기 (Learn more)

Java 공식 API