日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 打开gc日志_在运行时打开GC日志记录

發布時間:2023/12/3 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 打开gc日志_在运行时打开GC日志记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java 打開gc日志

總是有下一個JVM表現不佳。 而且,您內心深知,如果您只有少數啟動選項可以公開一些有關正在發生的事情的信息,那么您可能就有機會真正修復該死的東西。 但是不,您需要的標志( -XX:+ HeapDumpOnOutOfMemoryError或-XX:+ PrintGCDetails )總是丟失。

因此,您可以悲痛地聳聳肩,殺死受苦的JVM,更改啟動參數,然后祈禱問題的情況在重新啟動后得以重現。 有時確實如此,現在您可能有足夠的證據來進行下一步工作,并開始解決根本原因。

所描述的方法的問題很明顯–您需要經歷一次額外的重新啟動,而不是單次中斷,才能選擇那些令人討厭的調試選項。 實際上,有一種解決方法,有時將其添加到您的武庫中可能會被證明是有益的。

資訊

JDK捆綁包中隱藏了一個不錯的小實用程序。 jinfo是一個命令行實用程序,用于從運行中的Java進程中收集配置信息。 但是,有趣的部分是,使用-flag選項, jinfo實用程序可以為指定的Java進程動態調整某些Java VM標志的值。 這樣的標志的列表是有限的,但是在某些情況下仍然有用。 可以通過以下命令檢查JVM上此類標志的完整列表:

my-precious me$ java -XX:+PrintFlagsFinal -version|grep manageableintx CMSAbortablePrecleanWaitMillis = 100 {manageable}intx CMSWaitDuration = 2000 {manageable}bool HeapDumpAfterFullGC = false {manageable}bool HeapDumpBeforeFullGC = false {manageable}bool HeapDumpOnOutOfMemoryError = false {manageable}... cut for brevity ...bool PrintGC = false {manageable}bool PrintGCDateStamps = false {manageable}bool PrintGCDetails = false {manageable}bool PrintGCTimeStamps = false {manageable}

該-XX:+ PrintFlagsFinal列出所有JVM選項,在外面的“ 管理 ”選項目前的興趣。 這些可通過JDK管理界面( com.sun.management.HotSpotDiagnosticMXBean API )動態寫入。 同樣的MBean也通過JConsole發布。 按照我的喜好,命令行版本要方便得多。

示例如何使用jinfo

作為如何使用jinfo的示例,讓我們動態地在運行的JVM上打開GC日志記錄:

my-precious me$ jps 12278 HighAllocationRate 12279 Jps 12269 JConsole my-precious me$ jinfo -flag +PrintGCDetails 12278 my-precious me$ jinfo -flag +PrintGC 12278 my-precious me$

該實用程序通過打開-XX:+ PrintGC和-XX:+ PrintGCDetails選項來打開GC日志記錄。 與命令行參數的行為的細微差別在于,您必須通過jinfo同時指定PrintGCDetails和PrintGC選項。 如果您是通過啟動腳本設置參數的,則只需-XX:+ PrintGCDetails即可 ,因為它會自動打開-XX:+ PrintGC 。

但是,檢查標準輸出后,12278 PID的GC日志開始滾動良好:

... [GC (Allocation Failure) [PSYoungGen: 876416K->102624K(909312K)] 1094420K->320820K(1161216K), 0.2173131 secs] [Times: user=0.74 sys=0.00, real=0.22 secs] ... [GC (Allocation Failure) [PSYoungGen: 890304K->102240K(917504K)] 1108924K->320956K(1169408K), 0.2446639 secs] [Times: user=0.82 sys=0.01, real=0.25 secs] ...

關閉日志記錄是類似的–您只需要調用jinfo -flag -PrintGCDetails 12278和jinfo -flag -PrintGC 12278命令即可刪除日志消息。

有了這些知識,我只能希望它將為您節省一兩天的故障排除時間。 假設您不是性能監控工具(例如Plumbr)的滿意用戶之一,在這種情況下,您首先不會遇到此類需求。

翻譯自: https://www.javacodegeeks.com/2015/03/turning-on-gc-logging-at-runtime.html

java 打開gc日志

總結

以上是生活随笔為你收集整理的java 打开gc日志_在运行时打开GC日志记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。