자바 자체 명령 행 도구 jmap, jhat, jinfo 의 인 스 턴 스 코드 상세 설명
(1)JMAP
1. 역할
프로 세 스, core 파일 을 인쇄 하고 원 격 프로 세 스 의 공유 대상 과 맵 이나 메모리 의 상세 한 정 보 를 저장 합 니 다.
2. 사용
jmap[options]pid
jmap[options]executablecore
jmap[options][pid]server-id@]remote-hostname-or-IP
지정 한 프로 세 스 가 64 비트 자바 가상 머 신 (JVM) 에서 실행 된다 면 - J - d64 옵션 을 지정 해 야 할 수도 있 습 니 다. 예 를 들 어 jmap - J - d64 - heap pid.
3. 매개 변수 옵션
3.1
옵션 을 사용 하지 않 으 면 이 jmap 명령 은 공유 대상 맵 을 인쇄 합 니 다.
... 와 같다
C:\Users\Administrator>jmap9208
AttachingtoprocessID9208,pleasewait...
Debuggerattachedsuccessfully.
Servercompilerdetected.
JVMversionis24.75-b04
0x00000000623c00008016KD:\Java\jdk1.7.0_75\jre\bin\server\jvm.dll
0x0000000062ba0000840KD:\Java\jdk1.7.0_75\jre\bin\msvcr100.dll
0x0000000062cc0000144KD:\Java\jdk1.7.0_75\jre\bin\sunec.dll
0x0000000062cf000068KD:\Java\jdk1.7.0_75\jre\bin
io.dll
0x0000000062d10000100KD:\Java\jdk1.7.0_75\jre\bin
et.dll
0x0000000062d30000160KD:\Java\jdk1.7.0_75\jre\bin\java.dll
0x00000000634d000084KD:\Java\jdk1.7.0_75\jre\bin\zip.dll
0x000000006595000044KD:\Java\jdk1.7.0_75\jre\bin\sunmscapi.dll
0x000000006596000060KD:\Java\jdk1.7.0_75\jre\bin\verify.dll
0x000000006597000044KD:\Java\jdk1.7.0_75\jre\bin\management.dll
...
3.2
-dump:[live,] format=b, file=filename
자바 더미 hprof 바 이 너 리 형식 을 저장 합 니 다.live, 저장 active 상 태 를 표시 하 는 대상 을 지정 합 니 다.생 성 된 파일 은 jhat 명령 으로 볼 수 있 습 니 다.
C:\Users\Administrator>jmap-dump:format=b,file=9208_0413.hprof9208
DumpingheaptoC:\Users\Administrator\9208_0413.hprof...
Heapdumpfilecreated
3.3-finalizerinfo
끝 날 대상 의 정 보 를 인쇄 합 니 다.
C:\Users\Administrator>jmap-finalizerinfo9208
AttachingtoprocessID9208,pleasewait...
Debuggerattachedsuccessfully.
Servercompilerdetected.
JVMversionis24.75-b04
Numberofobjectspendingforfinalization:0
3.4 -heap
쓰레기 수집 및 힙 요약 정보 인쇄 및 - wise 더미 생 성 에 사용 되 는 요약
C:\Users\Administrator>jmap-heap9208
AttachingtoprocessID9208,pleasewait...
Debuggerattachedsuccessfully.
Servercompilerdetected.
JVMversionis24.75-b04
usingthread-localobjectallocation.
ParallelGCwith4thread(s)
HeapConfiguration:
MinHeapFreeRatio=0
MaxHeapFreeRatio=100
MaxHeapSize=2124414976(2026.0MB)
NewSize=1310720(1.25MB)
MaxNewSize=17592186044415MB
OldSize=5439488(5.1875MB)
NewRatio=2
SurvivorRatio=8
PermSize=21757952(20.75MB)
MaxPermSize=85983232(82.0MB)
G1HeapRegionSize=0(0.0MB)
HeapUsage:
PSYoungGeneration
EdenSpace:
capacity=68157440(65.0MB)
used=16646688(15.875518798828125MB)
free=51510752(49.124481201171875MB)
24.423875075120193%used
FromSpace:
capacity=5242880(5.0MB)
used=5228248(4.986045837402344MB)
free=14632(0.01395416259765625MB)
99.72091674804688%used
ToSpace:
capacity=15728640(15.0MB)
used=0(0.0MB)
free=15728640(15.0MB)
0.0%used
PSOldGeneration
capacity=88080384(84.0MB)
used=27239848(25.977943420410156MB)
free=60840536(58.022056579589844MB)
30.9261231195359%used
PSPermGeneration
capacity=22020096(21.0MB)
used=15369592(14.657585144042969MB)
free=6650504(6.342414855957031MB)
69.7980244954427%used
10057internedStringsoccupying867832bytes.
3.5 -histo[:live]
인쇄 더미 의 직사 도
num#instances#bytesclassname
----------------------------------------------
...
877:132[Lcom.sun.jndi.ldap.pool.Pool;
878:232com.sun.org.apache.xerces.internal.impl.dv.dtd.ENTITYDatatypeValidator
879:232java.lang.Shutdown$Lock
880:132org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler
881:232com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver
882:132java.lang.reflect.WeakCache$CacheKey
883:132java.text.FieldPosition
884:132java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
885:232sun.security.x509.CertificateVersion
886:232[Lorg.apache.catalina.deploy.ContextEnvironment;
887:132[Lorg.apache.tomcat.util.net.AbstractEndpoint$Acceptor$AcceptorState;
888:132sun.nio.cs.StandardCharsets
...
3.6 -clstats
자바 더미 의 wise 통계.1.7.0_75 이 항목 을 지원 하지 않 음
(2)jhat
2.1 역할
자바 더 미 를 분석 하 다.이 jhat 명령 은 자바 덤 프 파일 을 분석 하고 웹 서버 를 시작 합 니 다.jhat 명령 은 덤 프 를 탐색 할 수 있 습 니 다.OQL 문법 을 지원 합 니 다.
2.2 사용
jhat [ options ] heap-dump-file
2.3 매개 변수 설명
1.-stack false|true
추적 대상 할당 호출 스 택 을 닫 습 니 다.기본 값 은 true 입 니 다.
-refs false|true
대상 의 인용 추적 을 닫 습 니 다.기본 값 은 true 입 니 다.
-port port-number
포트 를 설정 한 jhatHTTP 서버 입 니 다.기본 값 은 7000 입 니 다.
-exclude exclude-file
접근 가능 한 대상 에서 데이터 구성원 을 제외 해 야 할 파일 을 지정 합 니 다.
-baseline exclude-file
지정 기준 더미 덤 프.같은 대상 ID 를 가 진 두 개의 덤 프 대상 에 새 대상 이 아 닌 것 으로 표 시 됩 니 다.이것 은 두 개의 서로 다른 덤 프 저장 소 를 비교 하 는 데 유용 하 다.
-debug int
0 레벨 은 디 버 깅 출력 이 없 음 을 표시 합 니 다.
C:\Users\Administrator>jhat-port80009208_0413.hprof
Readingfrom9208_0413.hprof...
DumpfilecreatedThuApr1321:18:58CST2017
Snapshotread,resolving...
Resolving389761objects...
Chasingreferences,expect77dots..........................................................................
Eliminatingduplicatereferences............................................................................
Snapshotresolved.
StartedHTTPserveronport8000
Serverisready.
다음은 브 라 우 저 를 통 해 방문 할 수 있 습 니 다.http://localhost:8000/.
(3)jinfo
3.1 역할
생 성 된 설정 정보.지정 한 프로 세 스 가 64 비트 JVM 에서 실행 된다 면 지정 - J - d64 옵션 이 필요 할 수 있 습 니 다.
3.2 사용
jinfo[option]pid
jinfo[option]executablecore
jinfo[option][servier-id]remote-hostname-or-IP
3.3 옵션 매개 변수
no - option: 명령 행 표지 와 시스템 속성 키 를 인쇄 합 니 다.
-flag name
인쇄 이름과 지정 한 명령 행 표지 의 값 입 니 다.
-flag [+|-]name
지정 한 불 명령 행 표 지 를 열거 나 금지 합 니 다.
-flag name=value
지정 한 명령 행 표 지 를 지정 값 으로 설정 합 니 다.
-flags
명령 행 로 고 를 인쇄 하여 JVM 에 전달 합 니 다.
-sysprops
자바 시스템 속성 키 쌍 을 인쇄 합 니 다.
인쇄 프로 세 스 의 명령 행 인자
C:\Users\Administrator>jinfo-flags9208
AttachingtoprocessID9208,pleasewait...
Debuggerattachedsuccessfully.
Servercompilerdetected.
JVMversionis24.75-b04
-Djava.util.logging.config.file=D:\apache-tomcat-7.0.67\conf\logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=D:\apache-tomcat-7.0.67\endorsed-Dcatalina.base=D:\apache-tomcat-7.0.67-Dcatalina.home=D:\apache-tomcat-7.0.67-Djava.io.
tmpdir=D:\apache-tomcat-7.0.67\temp
# catalina.sh
인쇄 매개 변수 값
#
C:\Users\Administrator>jinfo-flagNewSize9208
-XX:NewSize=1310720
#
C:\Users\Administrator>jinfo-flagPrintGC9208
-XX:-PrintGC
C:\Users\Administrator>jinfo-flagXmn9208
nosuchflag'Xmn'
요약 할 수 있 습 니 다. - xms, - xmn 시리즈 매개 변 수 는 jinfo 를 통 해 지정 하거나 인쇄 할 수 없습니다.jinfo 명령 은 - XX: * * 형식의 매개 변수 에 작용 합 니 다.
매개 변수 값 설정
C:\Users\Administrator>jinfo-flagPrintGC9208
-XX:-PrintGC
C:\Users\Administrator>jinfo-flag+PrintGC9208
C:\Users\Administrator>jinfo-flagPrintGC9208
-XX:+PrintGC
//2windows
C:\Users\Administrator>jinfo-flagPermSize=217500009208
Exceptioninthread"main"java.io.IOException:CommandfailedintargetVM
atsun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:112)
atsun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:217)
atsun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:190)
atsun.tools.jinfo.JInfo.flag(JInfo.java:123)
atsun.tools.jinfo.JInfo.main(JInfo.java:76)
이 글 이 당신 에 게 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.