<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JVM生成的這3種文件,你都見過嗎?

          共 1970字,需瀏覽 4分鐘

           ·

          2021-01-13 09:16

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

          Java 虛擬機(jī)(JVM)生成3個關(guān)鍵文件,這些文件對于JVM優(yōu)化性能和解決生產(chǎn)問題非常有用。這些文件是:

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

          帶著問題一探究竟

          在本文中,讓我們嘗試?yán)斫膺@三個關(guān)鍵文件,在哪里使用它們,它們看起來如何,如何捕獲它們,如何分析它們和它們的差異是什么。

          Garbage Collection Log (垃圾收集日志)

          什么是 GC Log

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

          GC 日志長什么樣?

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

          日志示例

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

          垃圾收集日志用于研究應(yīng)用程序的 GC 和內(nèi)存性能。它用于優(yōu)化 GC 暫停時間,用于確定應(yīng)用程序的最佳內(nèi)存大小,還用于排除與內(nèi)存相關(guān)的問題

          如何生成 GC 日志?

          您可以通過傳遞以下 JVM 參數(shù)來生成垃圾收集日志: 對于 Java8:

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

          從9開始的 Java 版本:

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

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

          如何理解 GC 日志?

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

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

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

          線程轉(zhuǎn)儲(Thread dump)

          什么是 Thread dump?

          線程轉(zhuǎn)儲是應(yīng)用程序中在某個時間點(diǎn)上運(yùn)行的所有線程的快照。它包含應(yīng)用程序中每個線程的所有信息,例如: 線程狀態(tài)、線程 Id、本機(jī) Id、線程名稱、堆棧跟蹤、優(yōu)先級。

          線程轉(zhuǎn)儲文件長什么樣?

          示例線程轉(zhuǎn)儲文件可以在這里找到:

          文件示例

          線程轉(zhuǎn)儲文件能解決什么問題?

          線程轉(zhuǎn)儲文件主要用于排除生產(chǎn)問題,例如 CPU 峰值、應(yīng)用程序中的無響應(yīng)性、響應(yīng)時間差、線程掛起、高內(nèi)存消耗。

          如何生成線程轉(zhuǎn)儲文件?

          使用線程轉(zhuǎn)儲最常見的選擇是使用“ jstack”工具。Jstack 工具是在 JDK_home\bin 文件夾中提供的。命令:

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

          其中 pid: 是應(yīng)用程序的進(jìn)程 Id,應(yīng)該捕獲其線程轉(zhuǎn)儲,file-path: 是將線程轉(zhuǎn)儲寫入的文件路徑。

          用什么工具來分析線程轉(zhuǎn)儲文件?

          以下是使用最廣泛的線程轉(zhuǎn)儲分析工具: fastThread、 SamuraiIBM Thread & Monitor analyzer、 Visual VM

          堆轉(zhuǎn)儲(Heap dump)

          什么是堆轉(zhuǎn)儲?

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

          堆轉(zhuǎn)儲看起來長什么樣?

          這里可以找到一個示例堆轉(zhuǎn)儲。示例文件

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

          分析堆轉(zhuǎn)儲能解決什么問題?

          堆轉(zhuǎn)儲主要用于排除與內(nèi)存有關(guān)的 OutOfMemoryError 問題

          如何生成堆轉(zhuǎn)儲文件?

          使用堆轉(zhuǎn)儲最常見的選擇是使用“ jmap”工具。Jmap 工具是在 JDK_home\bin 文件夾中提供的

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

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

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


          瀏覽 63
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  内射网站免费观看 | 国产精品腿扒开做爽爽爽挤奶网站 | 青娱乐国产视频自拍 | 五月婷婷天中文字幕版 | 97国产视频 |