最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談JDK9的特性之JVM的xlog

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

簡介

JVM是java程序運行的基礎,JVM中各種事件比如:GC,class loading,JPMS,heap,thread等等其實都可以有日志來記錄。通過這些日志,我們可以監(jiān)控JVM中的事件,并可以依次來對java應用程序進行調優(yōu)。

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

通過xlog,JDK將JVM中的各種事件統(tǒng)一起來,以統(tǒng)一的形式對外輸出。通過tag參數來區(qū)分子系統(tǒng),通過log level來區(qū)分事件的緊急性,通過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).

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

我們可以看到日志中對每一個操作都列出了操作花費的時間,日志級別和操作所屬的分類。

通過這些日志,我們對于JVM的運行可以有更加深入的理解。

使用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來表示的。

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

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=<filename>

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

以上就是淺談JDK9的特性之JVM的xlog的詳細內容,更多關于JDK9的特性之JVM的xlog的資料請關注腳本之家其它相關文章!

相關文章

  • Java方法及數組相關原理解析

    Java方法及數組相關原理解析

    這篇文章主要介紹了Java方法及數組相關原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • SpringCloud Nacos作為配置中心超詳細講解

    SpringCloud Nacos作為配置中心超詳細講解

    這篇文章主要介紹了Springcloud中的Nacos作為配置中心,本文以用戶微服務為例,進行統(tǒng)一的配置,結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Java中的FileInputStream是否需要close問題

    Java中的FileInputStream是否需要close問題

    這篇文章主要介紹了Java中的FileInputStream是否需要close問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Springmvc ajax跨域請求處理方法實例詳解

    Springmvc ajax跨域請求處理方法實例詳解

    這篇文章主要介紹了Springmvc ajax跨域請求處理方法實例詳解,需要的朋友可以參考下
    2017-10-10
  • SpringBoot結合Quartz實現(xiàn)數據庫存儲

    SpringBoot結合Quartz實現(xiàn)數據庫存儲

    本文主要介紹了SpringBoot+Quartz+數據庫存儲,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java對象轉JSON時動態(tài)的增刪改查屬性詳解

    Java對象轉JSON時動態(tài)的增刪改查屬性詳解

    這篇文章主要介紹了Java對象轉JSON時如何動態(tài)的增刪改查屬性的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • SpringBoot處理JSON數據方法詳解

    SpringBoot處理JSON數據方法詳解

    這篇文章主要介紹了SpringBoot整合Web開發(fā)中Json數據處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-10-10
  • 教你在一分鐘之內理解Java Lambda表達式并學會使用

    教你在一分鐘之內理解Java Lambda表達式并學會使用

    今天給大家?guī)У奈恼率荍ava8新特性的相關知識,文章圍繞著如何在一分鐘之內理解Java Lambda表達式并學會使用展開,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • springboot無法跳轉頁面的問題解決方案

    springboot無法跳轉頁面的問題解決方案

    這篇文章主要介紹了springboot無法跳轉頁面的問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Mybatis實現(xiàn)動態(tài)排序方式

    Mybatis實現(xiàn)動態(tài)排序方式

    這篇文章主要介紹了Mybatis實現(xiàn)動態(tài)排序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評論

英德市| 沂源县| 柳林县| 桑植县| 安仁县| 宾川县| 图片| 澳门| 天津市| 得荣县| 越西县| 咸宁市| 福州市| 信阳市| 六安市| 深水埗区| 垫江县| 金堂县| 岳西县| 屏东县| 门头沟区| 柞水县| 永泰县| 稻城县| 东海县| 宁南县| 乌鲁木齐县| 赤峰市| 垦利县| 陆川县| 博白县| 邢台市| 连城县| 驻马店市| 云南省| 临夏市| 上饶县| 岐山县| 七台河市| 莱芜市| 嘉黎县|