日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是 Java 虛擬機(JVM)中的垃圾收集(GC)日志、線程轉儲和堆轉儲?

Java 虛擬機(JVM)生成3個關鍵文件,這些文件對于JVM優化性能和解決生產問題非常有用。這些文件是:

  • (GC) Garbage collection log 垃圾收集日志
  • Thread Dump 線程轉儲
  • Heap Dump 堆轉儲

帶著問題一探究竟

在本文中,讓我們嘗試理解這三個關鍵文件,在哪里使用它們,它們看起來如何,如何捕獲它們,如何分析它們和它們的差異是什么。

Garbage Collection Log (垃圾收集日志)

什么是 GC Log

GC 日志包含垃圾收集事件的相關信息。它將指示運行了多少 GC 事件、它們是什么類型的 GC 事件(即 Young GC 或 Full GC)、每個 GC 事件暫停應用程序的時間、每個 GC 事件回收了多少對象。

GC 日志長什么樣?

可以在這里找到一個垃圾收集日志文件示例:

日志示例

分析GC 日志能查看出什么問題 ?

垃圾收集日志用于研究應用程序的 GC 和內存性能。它用于優化 GC 暫停時間,用于確定應用程序的最佳內存大小,還用于排除與內存相關的問題

如何生成 GC 日志?

您可以通過傳遞以下 JVM 參數來生成垃圾收集日志:對于 JAVA8:

-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:<file-path>

從9開始的 Java 版本:

-Xlog:gc*:file=<file-path>

File-path: 是將要寫入垃圾收集日志文件的位置。

如何理解 GC 日志?

垃圾收集日志的格式因 JVM 供應商的不同而不同(Oracle、 HP、 IBM、....,Java version (1.5,5,6,7,8,9,10,11,12,...) ,垃圾收集算法(Serial,Parallel,CMS,G1....和 JVM 各種參數。因此,沒有一種可用的標準格式.不過這里有一個教程可以幫助你理解GC日志:link

用什么工具來分析 GC 日志?

有多個垃圾收集日志分析工具。這里給出一些流行的例子: GCeasy,IBM GC & Memory visualizer,HP JMeter,google Garbage Cat。

線程轉儲(Thread dump)

什么是 Thread dump?

線程轉儲是應用程序中在某個時間點上運行的所有線程的快照。它包含應用程序中每個線程的所有信息,例如: 線程狀態、線程 Id、本機 Id、線程名稱、堆棧跟蹤、優先級。

線程轉儲文件長什么樣?

示例線程轉儲文件可以在這里找到:

文件示例

線程轉儲文件能解決什么問題?

線程轉儲文件主要用于排除生產問題,例如 CPU 峰值、應用程序中的無響應性、響應時間差、線程掛起、高內存消耗。

如何生成線程轉儲文件?

使用線程轉儲最常見的選擇是使用“ jstack”工具。Jstack 工具是在 JDK_homebin 文件夾中提供的。命令:

jstack -l <pid> > <file-path>

其中 pid: 是應用程序的進程 Id,應該捕獲其線程轉儲,file-path: 是將線程轉儲寫入的文件路徑。

用什么工具來分析線程轉儲文件?

以下是使用最廣泛的線程轉儲分析工具: fastThread、 Samurai、 IBM Thread & Monitor analyzer、 Visual VM

堆轉儲(Heap dump)

什么是堆轉儲?

堆轉儲是應用程序內存在某個時間點上的快照。它包含諸如內存中的對象是什么,它們攜帶什么值,它們的大小是什么,它們引用什么其他對象等信息。

堆轉儲看起來長什么樣?

這里可以找到一個示例堆轉儲。示例文件

(注意: 它將是二進制格式的。所以你實際上不能閱讀它)

分析堆轉儲能解決什么問題?

堆轉儲主要用于排除與內存有關的 OutOfMemoryError 問題

如何生成堆轉儲文件?

使用堆轉儲最常見的選擇是使用“ jmap”工具。Jmap 工具是在 JDK_homebin 文件夾中提供的

jmap -dump:format=b,file=<file-path>  [pid]
其中 pid: 是 Java 進程 Id ,file-path: 是將堆轉儲寫入的文件路徑。

如何分析和理解 Heap dump 用什么工具來分析 ??

堆轉儲文件采用二進制格式,并且大小往往很大。除此之外,他們的格式嚴重缺乏文檔。因此,您必須使用堆轉儲分析工具,最廣泛的堆轉儲分析工具有: Eclipse MAT、 HeapHero 和 JVisualVM。

分享到:
標簽:JVM
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定