2010-06-04 4 views
1

어떤 메모리 풀 빈에서 CollectionUsage, PeakUsage, Usage 필드의 차이점은 무엇입니까?
jconsole 윈도우의 모든 응용 프로그램 경로에서 다음을 보았습니다.
mbean 탭> java.lang> memorypool> 빈을 선택하십시오.
오른쪽면 창에서 이러한 속성을 볼 수 있습니다.CollectionUsage, PeakUsage, Usage의 차이점은 무엇입니까?

답변

3

그들은 모두 MemoryPoolMXBean

메모리 사용

의 getUsage() 메소드가 메모리 풀의 현재의 사용량의 견적을 제공하기위한 JavaDoc을 설명하고 있습니다. 가비지 수집 메모리 풀의 경우 메모리 사용량은 에 도달 할 수있는 개체와 도달 할 수없는 개체를 모두 포함하는 풀에있는 개체의 메모리가 모두 포함됩니다.

일반적으로이 방법은 대략 메모리 사용량을 으로 가져 오는 경량 작업입니다. 예를 들어 개체가 연속적으로 패킹되지 않은 경우 메모리 풀의 경우 이 메서드는 현재 메모리 사용을 확인하기 위해 일부 계산을 필요로하는 값 비싼 작업 일 수 있습니다. 이 경우에는 구현시 문서를 작성해야합니다.

피크 메모리 사용

자바 가상 머신이 가상 머신이 시작되었다 또는 피크가 리셋 된 이후 메모리 풀 의 피크 메모리 사용량을 유지합니다. 피크 메모리 사용은 getPeakUsage() 메서드에 의해 반환되고 에 의해 resetPeakUsage() 메서드를 호출하여 다시 설정됩니다.

컬렉션 사용량 임계치

컬렉션 사용량 임계치는 일부 가비지 수집 메모리 풀에 에만 적용 할 수있는 관리 가능한 속성입니다. 자바 가상 머신 쓰레기 수집시 메모리 풀에서 사용되지 않는 객체의 리사이클에 의해 메모리 공간의 재생에 최선을 다한 후, 가 가베지 컬 렉트 된 메모리 풀 바이트 의 일부 수는 여전히 사용됩니다. 컬렉션 사용량 임계치는 값이 임계 값을 초과 경우 컬렉션 사용량 임계치 통지가 MemoryMXBean에 의해 방출한다 초과되도록 바이트의 수를 설정할 수있다. 또한 컬렉션 사용 임계 값은 이 증가됩니다.

으로 isCollectionUsageThresholdSupported() 메소드 이 기능이 지원 여부를 결정하기 위해 사용될 수있다.

Java 가상 머신은 체크를 메모리 풀마다 컬렉션 사용량 임계치를 수행합니다. 모음 사용량이 임계 값이 양수 값으로 설정된 경우이 확인은 입니다. 콜렉션 사용 임계치가 이 0으로 설정된 경우,이 점검은이 메모리 풀의 을 사용 불가능하게합니다. 기본값은 입니다. Java 가상 머신 은 수집시 쓰레기 수거 임계치를 확인하고 수집 시간을 사용합니다.

일부 가비지 수집 메모리 풀 는 컬렉션 사용량 임계치를 지원하지 않도록 선택할 수 있습니다. 예를 들어 의 경우 메모리 풀은 연속적인 가비지 콜렉터로 으로 만 관리됩니다. 어떤 스레드에 의해 이 메모리 풀에 객체를 할당 할 수 있지만 사용하지 않는 객체는 동시 가비지 컬렉터 에 의해 동시에 회수됩니다. 잘 정의 된 가비지 수집 시간이 인 경우가 아니면 메모리 사용량을 확인하는 데 가장 적합한 시간이며 사용량 임계 값은 이 아니어야합니다.

컬렉션 사용량 임계치는 Java 가상 머신 후 메모리 사용량을 모니터링하기 위해 설계 이 메모리 공간의 재생에 최선을 다한 것입니다. 컬렉션 사용도 도 비슷한 방법으로 사용량에 대해 위에서 설명한 폴링 및 임계 값 알림 메커니즘 으로 모니터링 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 그것은 내 질문에 대답했다. 나는 이제 그것에 대해 분명하다. – user348669

관련 문제