JDK 9 의 특성 에 대한 JVM 의 xlog
JVM 은 자바 프로그램 이 실행 되 는 기초 입 니 다.JVM 의 각종 사건,예 를 들 어 GC,class loading,JPMS,heap,thread 등 은 모두 로그 로 기록 할 수 있 습 니 다.이 로 그 를 통 해 우 리 는 JVM 의 사건 을 감시 하고 자바 응용 프로그램 을 순서대로 조정 할 수 있 습 니 다.
JDK 9 에 도 입 된 Xlog 로그 서 비 스 는 이 를 위해 만 들 어 졌 습 니 다.
xlog 를 통 해 JDK 는 JVM 의 각종 사건 을 통일 시 켜 통 일 된 형식 으로 대외 수출 한다.tag 매개 변 수 를 통 해 분자 시스템 을 구분 하고 log level 을 통 해 사건 의 긴급 성 을 구분 하 며 logging output 를 통 해 출력 주 소 를 설정 합 니 다.
xlog 사용
먼저 가장 간단 한 xlog 의 사용 예 를 보십시오.
java -Xlog -version
출력 결과:
[0.016s][info][os] Use of CLOCK_MONOTONIC is supported
[0.016s][info][os] Use of pthread_condattr_setclock is not supported
[0.016s][info][os] Relative timed-wait using pthread_cond_timedwait is associated with the default clock
[0.017s][info][os] SafePoint Polling address, bad (protected) page:0x0000000108901000, good (unprotected) page:0x0000000108902000
[0.022s][info][biasedlocking] Aligned thread 0x00007f983e008200 to 0x00007f983e008800
[0.023s][info][os,thread ] Thread attached (tid: 10499, pthread id: 123145571979264).
일 지 는 매우 길 어서 여기 가 전부 열거 되 지 는 않 는 다.출력 로그 에서 자바-verson 명령 에서 JVM 이 많은 작업 을 수행 하 는 것 을 볼 수 있 습 니 다.
로그 에서 모든 작업 에 걸 리 는 시간,로그 단계,작업 에 속 하 는 분 류 를 보 여 줍 니 다.
이 로 그 를 통 해 우 리 는 JVM 의 운행 에 대해 더욱 깊이 이해 할 수 있다.
자바-Xlog:help 명령 을 사용 하여 xlog 의 기본 형식 을 보 여 줍 니 다.
-Xlog Usage: -Xlog[:[selections][:[output][:[decorators][:output-options]]]]
where 'selections' are combinations of tags and levels of the form tag1[+tag2...][*][=level][,...]
NOTE: Unless wildcard (*) is specified, only log messages tagged with exactly the tags specified will be matched.
selections
selections 는 어떤 정 보 를 출력 해 야 하 는 지 를 나타 낸다.tag=level 로 표 시 됩 니 다.
tag 는 JVM 의 이벤트 나 서브 시스템 을 표시 합 니 다.
Available log tags:
add, age, alloc, annotation, aot, arguments, attach, barrier, biasedlocking, blocks, bot, breakpoint, bytecode, cds, census, class, classhisto, cleanup, codecache, compaction, compilation, constantpool, constraints, container, coops, cpu, cset, data, datacreation, dcmd, decoder, defaultmethods, director, dump, dynamic, ergo, event, exceptions, exit, fingerprint, free, freelist, gc, handshake, hashtables, heap, humongous, ihop, iklass, init, inlining, install, interpreter, itables, jfr, jit, jni, jvmti, liveness, load, loader, logging, malloc, mark, marking, membername, memops, metadata, metaspace, methodcomparator, mirror, mmu, module, monitorinflation, monitormismatch, nestmates, nmethod, normalize, numa, objecttagging, obsolete, oldobject, oom, oopmap, oops, oopstorage, os, pagesize, parser, patch, path, perf, periodic, phases, plab, preorder, preview, promotion, protectiondomain, ptrqueue, purge, record, redefine, ref, refine, region, reloc, remset, resolve, safepoint, sampling, scavenge, setting, smr, stackmap, stacktrace, stackwalk, start, startuptime, state, stats, streaming, stringdedup, stringtable, subclass, survivor, sweep, symboltable, system, table, task, thread, time, timer, tlab, tracking, unload, unshareable, update, verification, verify, vmmutex, vmoperation, vmthread, vtables, vtablestubs, workgang
Specifying 'all' instead of a tag combination matches all tag combinations
levels 는 로그 의 단 계 를 표시 합 니 다:
Available log levels: off, trace, debug, info, warning, error
다음 예 를 들 어:
java -Xlog:os,class=info -version
출력 결과:
[0.002s][info][os] Use of CLOCK_MONOTONIC is supported
[0.002s][info][os] Use of pthread_condattr_setclock is not supported
[0.002s][info][os] Relative timed-wait using pthread_cond_timedwait is associated with the default clock
[0.003s][info][os] SafePoint Polling address, bad (protected) page:0x0000000109543000, good (unprotected) page:0x0000000109544000
[0.006s][info][os] attempting shared library load of /Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/lib/libjava.dylib
[0.007s][info][os] shared library load of /Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/lib/libjava.dylib was successful
[0.007s][info][os] attempting shared library load of /Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/lib/libzip.dylib
[0.010s][info][os] shared library load of /Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home/lib/libzip.dylib was successful
output
output 는 로 그 를 어디 에 출력 하 는 지 표시 합 니 다.
output 옵션:
stdout/stderr file=
stdout 은 표준 출력 을 표시 하고 stderr 는 표준 오 류 를 표시 합 니 다.file 은 파일 에 출력 을 표시 합 니 다.
예 를 들 어:
java -Xlog:all=debug:file=debug.log -version
decorators
decorators 는 로그 에 어떤 내용 을 출력 하 는 지 표시 합 니 다.
time (t), utctime (utc), uptime (u), timemillis (tm), uptimemillis (um), timenanos (tn), uptimenanos (un), hostname (hn), pid (p), tid (ti), level (l), tags (tg)
Decorators can also be specified as 'none' for no decoration
이 예 를 보 세 요.
java -Xlog:gc*=debug:stdout:time,uptimemillis,tid -version
출력 결과:
[2020-05-05T16:12:06.871-0800][32ms][9475] Heap region size: 1M
[2020-05-05T16:12:06.871-0800][32ms][9475] Minimum heap 8388608 Initial heap 134217728 Maximum heap 2147483648
[2020-05-05T16:12:06.872-0800][33ms][9475] Heap address: 0x0000000780000000, size: 2048 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
[2020-05-05T16:12:06.872-0800][33ms][9475] ConcGCThreads: 1 offset 8
[2020-05-05T16:12:06.872-0800][33ms][9475] ParallelGCThreads: 4
이상 은 JDK 9 의 특성 에 대한 JVM 의 xlog 에 대한 상세 한 내용 입 니 다.JDK 9 의 특성 에 관 한 JVM 의 xlog 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java】 STS (Eclipse)에 AdoptOpen JDK 설정· Eclipse를 2020-09로 업데이트하면 jre로 Eclipse를 움직이고 있습니다! 라는 메시지가 나온다. ・메모리 상태의 파악을 위해 MissionControl 넣으려고 하면 JDK로 움직이지 않으면 안 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.