91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中垃圾收集日志、線程轉儲、堆轉儲的示例分析

發布時間:2022-02-28 11:09:45 來源:億速云 閱讀:174 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Java中垃圾收集日志、線程轉儲、堆轉儲的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Java 虛擬機 (JVM) 生成 3 個關鍵組件,這些組件對于優化性能和排除生產問題很有用。這些組件是:

  1. 垃圾收集 (GC) 日志

  2. 線程轉儲

  3. 堆轉儲

在本文中,讓我們嘗試了解這 3 個關鍵組件,它們在哪里使用,它的外觀如何,如何捕獲它們,如何分析它們以及它們的差異。

1.垃圾收集日志

a) 什么是 GC 日志?

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

b) GC 日志看起來如何?

可以在此處找到示例垃圾收集日志文件。

c) GC Log 在哪里使用?

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

d) 如何生成GC日志?

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

對于 8 之前的 Java 版本:

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

對于從 9 開始的 Java 版本:

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

文件路徑:是垃圾收集日志文件將被寫入的位置。

e) 如何理解GC Log?

垃圾收集日志格式因您的 JVM 供應商(Oracle、HP、IBM、Azul 等)、Java 版本(1.5、5、6、7、8、9、10、11、12……)、垃圾而異收集算法(串行、并行、CMS、G1、Shenandoah、Z GC)和傳遞的 JVM 參數。因此,沒有一種可用的標準化格式。

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

有多種垃圾收集日志分析工具。這里給出了一些流行的:GCeasy、IBM GC 和內存可視化器、HP JMeter、Google Garbage Cat。

2.線程轉儲

a) 什么是線程轉儲?

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

b) 線程轉儲看起來如何?

可以在此處找到示例線程轉儲。

c) 線程轉儲在哪里使用?

線程轉儲主要用于解決生產問題,例如 CPU 峰值、應用程序無響應、響應時間差、線程掛起、內存消耗高。

d) 如何生成線程轉儲?

可以使用8 個不同的選項從正在運行的應用程序中捕獲線程轉儲。進行線程轉儲的最常見選項是使用“jstack”工具。jstack 工具在 JDK_HOME\bin 文件夾中提供。這是您需要發出以捕獲線程轉儲的命令:

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

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

e) 使用什么工具來分析線程轉儲?

以下是使用最廣泛的線程轉儲分析工具:fastThreadSamuraiIBM Thread & Monitor AnalyzerVisual VM

3.堆轉儲

a) 什么是堆轉儲?

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

b) 堆轉儲看起來如何?

可以在此處找到示例堆轉儲。(注意:它將采用二進制格式。因此您實際上無法讀取它)。

c) 堆轉儲在哪里使用?

堆轉儲主要用于解決內存相關的 OutOfMemoryError 問題。

d) 如何生成堆轉儲?

可以使用7 個不同的選項從正在運行的應用程序中捕獲堆轉儲。進行堆轉儲的最常見選項是使用“jmap”工具。jmap 工具在 JDK_HOME\bin 文件夾中提供。這是您需要發出以捕獲的命令:

<span >jmap -dump:format=b,</span><span >
</span><span >file=<file-path> <pid> </span>

其中pid:是 Java 進程 ID,應捕獲其堆轉儲,而file-path:是將寫入堆轉儲的文件路徑。

e) 如何理解堆轉儲?

堆轉儲文件采用二進制格式,并且往往很大。除此之外,它們的格式嚴重缺乏文檔。因此,您必須使用堆轉儲分析工具(在下一個問題中給出)來分析和理解它們。

f) 使用什么工具來分析 Heap dump?

使用最廣泛的堆轉儲分析工具:Eclipse MATHeapHeroJVisualVM

關于“Java中垃圾收集日志、線程轉儲、堆轉儲的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和顺县| 苍南县| 色达县| 南平市| 楚雄市| 疏附县| 延庆县| 青铜峡市| 陆良县| 乡城县| 青岛市| 株洲县| 长宁区| 龙川县| 顺昌县| 瑞安市| 大新县| 黄龙县| 龙游县| 德庆县| 涪陵区| 泾源县| 垣曲县| 尼玛县| 云南省| 玉溪市| 博白县| 四会市| 霍山县| 临汾市| 出国| 克拉玛依市| 海安县| 美姑县| 左贡县| 都匀市| 新野县| 客服| 噶尔县| 平潭县| 大名县|