欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談JDK9的特性之JVM的xlog

 更新時(shí)間:2021年06月02日 10:36:23   作者:flydean  
在java程序中,我們通過(guò)日志來(lái)定位和發(fā)現(xiàn)項(xiàng)目中可能出現(xiàn)的問(wèn)題。在現(xiàn)代java項(xiàng)目中,我們使用log4j或者slf4j,Logback等日志記錄框架來(lái)處理日志問(wèn)題。本文將介紹JDK9的特性之JVM的xlog。

簡(jiǎn)介

JVM是java程序運(yùn)行的基礎(chǔ),JVM中各種事件比如:GC,class loading,JPMS,heap,thread等等其實(shí)都可以有日志來(lái)記錄。通過(guò)這些日志,我們可以監(jiān)控JVM中的事件,并可以依次來(lái)對(duì)java應(yīng)用程序進(jìn)行調(diào)優(yōu)。

在JDK9中引入的Xlog日志服務(wù)就是為這個(gè)目的而創(chuàng)建的。

通過(guò)xlog,JDK將JVM中的各種事件統(tǒng)一起來(lái),以統(tǒng)一的形式對(duì)外輸出。通過(guò)tag參數(shù)來(lái)區(qū)分子系統(tǒng),通過(guò)log level來(lái)區(qū)分事件的緊急性,通過(guò)logging output來(lái)配置輸出的地址。

xlog的使用

先看一個(gè)最簡(jiǎn)單的xlog的使用例子:

java -Xlog -version

輸出結(jié)果:

[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).

日志非常非常長(zhǎng),這里就不全部列出來(lái)了。從輸出的日志我們可以看到j(luò)ava -verson命令中JVM執(zhí)行了諸多的操作。

我們可以看到日志中對(duì)每一個(gè)操作都列出了操作花費(fèi)的時(shí)間,日志級(jí)別和操作所屬的分類。

通過(guò)這些日志,我們對(duì)于JVM的運(yùn)行可以有更加深入的理解。

使用java -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來(lái)表示的。

tag表示的是JVM中的事件或者子系統(tǒng):

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表示的是日志的級(jí)別:

Available log levels: off, trace, debug, info, warning, error

下面舉個(gè)例子:

java -Xlog:os,class=info -version

輸出結(jié)果:

[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的可選項(xiàng):

stdout/stderr file=<filename>

stdout表示標(biāo)準(zhǔn)輸出,stderr表示標(biāo)準(zhǔn)錯(cuò)誤。file表示輸出到文件里面。

舉個(gè)例子:

java -Xlog:all=debug:file=debug.log -version

decorators

decorators表示輸出哪些內(nèi)容到日志中。

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

看下這個(gè)例子:

 java -Xlog:gc*=debug:stdout:time,uptimemillis,tid -version

輸出結(jié)果:

[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

以上就是淺談JDK9的特性之JVM的xlog的詳細(xì)內(nèi)容,更多關(guān)于JDK9的特性之JVM的xlog的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • ssm?mybatis如何配置多個(gè)mapper目錄

    ssm?mybatis如何配置多個(gè)mapper目錄

    這篇文章主要介紹了ssm?mybatis如何配置多個(gè)mapper目錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • 分析Springboot中嵌套事務(wù)失效原因詳解

    分析Springboot中嵌套事務(wù)失效原因詳解

    這篇文章主要為大家介紹了分析Springboot中嵌套事務(wù)失效原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • SpringMVC執(zhí)行過(guò)程詳細(xì)講解

    SpringMVC執(zhí)行過(guò)程詳細(xì)講解

    MVC是一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)組件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫(xiě)業(yè)務(wù)邏輯,MVC分層有助于管理和架構(gòu)復(fù)雜的應(yīng)用程序
    2022-08-08
  • 淺談java中文本框和文本區(qū)

    淺談java中文本框和文本區(qū)

    本文給大家介紹的是java中的文本框和文本區(qū)的概念和使用方法,以及簡(jiǎn)單的示例,十分實(shí)用,有需要的小伙伴可以參考下。
    2015-06-06
  • 簡(jiǎn)單了解Spring中的事務(wù)控制

    簡(jiǎn)單了解Spring中的事務(wù)控制

    這篇文章主要介紹了簡(jiǎn)單了解Spring中的事務(wù)控制,事務(wù)是一組操作的執(zhí)行單元,下面我們來(lái)簡(jiǎn)單學(xué)習(xí)一下吧
    2019-05-05
  • SpringBoot指標(biāo)監(jiān)控功能實(shí)現(xiàn)

    SpringBoot指標(biāo)監(jiān)控功能實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot指標(biāo)監(jiān)控功能實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 基于Java語(yǔ)言實(shí)現(xiàn)Socket通信的實(shí)例

    基于Java語(yǔ)言實(shí)現(xiàn)Socket通信的實(shí)例

    今天小編就為大家分享一篇關(guān)于基于Java語(yǔ)言實(shí)現(xiàn)Socket通信的實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • 使用Java代碼進(jìn)行因數(shù)分解和求最小公倍數(shù)的示例

    使用Java代碼進(jìn)行因數(shù)分解和求最小公倍數(shù)的示例

    這篇文章主要介紹了使用Java代碼進(jìn)行因數(shù)分解和求最小公倍數(shù)的示例,都是基于最基礎(chǔ)的算法原理實(shí)現(xiàn),需要的朋友可以參考下
    2015-11-11
  • JVM虛擬機(jī)性能監(jiān)控與故障處理工具介紹

    JVM虛擬機(jī)性能監(jiān)控與故障處理工具介紹

    這篇文章主要為大家介紹了JVM虛擬機(jī)性能監(jiān)控與故障處理工具介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Springboot事件監(jiān)聽(tīng)與@Async注解詳解

    Springboot事件監(jiān)聽(tīng)與@Async注解詳解

    這篇文章主要介紹了Springboot事件監(jiān)聽(tīng)與@Async注解詳解,在開(kāi)發(fā)中經(jīng)??梢岳肧pring事件監(jiān)聽(tīng)來(lái)實(shí)現(xiàn)觀察者模式,進(jìn)行一些非事務(wù)性的操作,如記錄日志之類的,需要的朋友可以參考下
    2024-01-01

最新評(píng)論