2010-02-24 4 views
9

Java 프로세스에서 특정 시간에 사용중인 총 힙 크기를 확인하고 jmap을 사용해야합니다.jmap으로 현재 힙 크기를 찾으십시오.

 
Attaching to process ID 2899, please wait... 
Debugger attached successfully.    
Server compiler detected.     
JVM version is 14.2-b01      

using thread-local object allocation. 
Parallel GC with 2 thread(s)   

Heap Configuration: 
    MinHeapFreeRatio = 40 
    MaxHeapFreeRatio = 70 
    MaxHeapSize  = 1258291200 (1200.0MB) 
    NewSize   = 1048576 (1.0MB)  
    MaxNewSize  = 4294901760 (4095.9375MB) 
    OldSize   = 4194304 (4.0MB)   
    NewRatio   = 8      
    SurvivorRatio = 8      
    PermSize   = 16777216 (16.0MB)  
    MaxPermSize  = 67108864 (64.0MB)  

Heap Usage: 
PS Young Generation 
Eden Space:   
    capacity = 119013376 (113.5MB) 
    used  = 117277608 (111.84464263916016MB) 
    free  = 1735768 (1.6553573608398438MB) 
    98.54153536489882% used 
From Space: 
    capacity = 131072 (0.125MB) 
    used  = 81920 (0.078125MB) 
    free  = 49152 (0.046875MB) 
    62.5% used 
To Space: 
    capacity = 131072 (0.125MB) 
    used  = 0 (0.0MB) 
    free  = 131072 (0.125MB) 
    0.0% used 
PS Old Generation 
    capacity = 954466304 (910.25MB) 
    used  = 80791792 (77.04905700683594MB) 
    free  = 873674512 (833.2009429931641MB) 
    8.46460390077846% used 
PS Perm Generation 
    capacity = 57671680 (55.0MB) 
    used  = 41699008 (39.76727294921875MB) 
    free  = 15972672 (15.23272705078125MB) 
    72.30413263494319% used 

내가 총 메모리가 사용 찾을 이러한 값에 대한 공식을 사용할 수 :

jmap -heap <pid>의 출력은 나에게 이런 일을 준다?

Linux에서 이것을 어떻게 찾을 수 있는지에 대한 다른 제안은 환영하지만 jmap은 그 위에 우선합니다.

감사 Heap Usage:에서

답변

2

항목은 사용 가능한 공간, 자신의 최대 크기와 함께, JVM의 다양한 분할 된 메모리 풀을 나열하고 있습니다. 나열된 풀에서 설명되지 않은 일부 JVM 오버 헤드가있을 수 있지만 다양한 used: 값을 추가하면 총 메모리 사용량에 합리적인 값을 얻을 수 있습니다.

+0

'jmap -heap : format = b '을 실행하고 Eclipse에서 Memory Analyzing Tool로 힙 덤프 파일을 구문 분석하면 총 사용량이 22Mb. 나는 같은 총 가치를 얻을 수있는 방법을 찾을 수 없습니다 ... – fmoga

+0

@MelmanRo : 내 생각에 일식 도구는 계산에서 계산할 수없는 모든 (도달 할 수없는 가비지 수집 된) 개체를 제거했습니다. 전체 GC 스윕이 실행 된 경우 힙 크기 *는 얼마입니까? 나는 현재의 실제 운영 체제 메모리 사용량이 내가 설명한 여러 풀의 총합계라고 주장한다. – skaffman

+0

큰 차이가있을 수 있습니까? – fmoga

3

'total heap usage'를 표시하는 메인 윈도우가있는 jconsole 또는 jvisualvm과 비교하려는 경우 '중고 에덴 공간'과 '중고 ps 오래된 세대 공간'을 추가하여 알아 냈습니다. 그 그래프가 앞서 말한 프로그램에서 보여준 것 - 지금 제가하는 경향이 무엇입니까?

관련 문제