欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JVM參數(shù)NativeMemoryTracking的使用

 更新時間:2025年01月23日 11:35:49   作者:WannaRunning  
本文主要介紹了JVM參數(shù)NativeMemoryTracking的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

實際開發(fā)場景中應(yīng)該有發(fā)現(xiàn)Java應(yīng)用程序會消耗比設(shè)置-Xms和-Xmx更多的內(nèi)存,究其原因其實是因為JVM中除了大家熟知的堆內(nèi)存外,還有所謂的非堆內(nèi)存(Non-Heap Memory),詳細(xì)來看,非堆內(nèi)存包括方法區(qū)和Java虛擬機(jī)內(nèi)部做處理或優(yōu)化所需的內(nèi)存。

從圖上可以看到JVM內(nèi)存部分,除了堆內(nèi)存外還有方法區(qū),包括線程棧,常量池,方法和構(gòu)造函數(shù)代碼等。方法區(qū)在邏輯上是堆的一部分,但在HotSpot中是堆外存儲的,不同虛擬機(jī)可能實現(xiàn)有所不同。

Native Memory Tracking (NMT)

NMT,全稱為Native Memory Tracking,是Java 8u40版本引入的一項功能,用于跟蹤JVM本身在本地內(nèi)存中的內(nèi)存使用情況。我們可以使用 NMT 來追蹤了解 JVM 的內(nèi)存使用詳情(即上圖中的 JVM Memory 部分),幫助我們排查內(nèi)存增長與內(nèi)存泄漏相關(guān)的問題。

Native Memory Tracking 主要是用來通過在 JVM 向系統(tǒng)申請內(nèi)存的時候進(jìn)行埋點實現(xiàn)的。

Native Memory Tracking 默認(rèn)是不開啟的,并且無法動態(tài)開啟(因為這是埋點采集統(tǒng)計的,如果可以動態(tài)開啟那么沒開啟的時候的內(nèi)存分配沒有記錄無法知曉,所以無法動態(tài)開啟),目前只能通過在啟動 JVM 的時候通過啟動參數(shù)開啟。

NativeMemoryTracking參數(shù)使用

回到本文要說的 NativeMemoryTracking參數(shù),這個參數(shù)用于開啟和配置NMT的。要開啟配置和在需要時進(jìn)行查看,需要配合jcmd的命令來實現(xiàn)。

配置啟動NMT參數(shù)

通過設(shè)置 JVM 啟動參數(shù)來開啟:-XX:NativeMemoryTracking=[off | summary | detail]

關(guān)于參數(shù)選項的解釋如下 

off不跟蹤 JVM 本地內(nèi)存使用情況。如果不指定 -XX:NativeMemoryTracking 選項則默認(rèn)為off。
summary僅跟蹤 JVM 子系統(tǒng)(如:Java heap、class、code、thread等)的內(nèi)存使用情況。
detail除了通過 JVM 子系統(tǒng)跟蹤內(nèi)存使用情況外,還可以通過單獨的 CallSite、單獨的虛擬內(nèi)存區(qū)域及其提交區(qū)域來跟蹤內(nèi)存使用情況。

使用 jcmd <pid> VM.native_memory 查看

開啟之后,我們可以通過 jcmd 命令去查看 Native Memory Tracking 的信息,即

jcmd <pid> VM.native_memory

到此這篇關(guān)于JVM參數(shù)NativeMemoryTracking的使用的文章就介紹到這了,更多相關(guān)JVM NativeMemoryTracking內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Java中List集合的遍歷實例詳解

    Java中List集合的遍歷實例詳解

    這篇文章主要介紹了Java中List集合遍歷實例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring:如何使用枚舉參數(shù)

    Spring:如何使用枚舉參數(shù)

    這篇文章主要介紹了springboot枚舉類型傳遞的步驟,幫助大家更好的理解和學(xué)習(xí)使用springboot,感興趣的朋友可以了解下,希望能給你帶來幫助
    2021-08-08
  • spring?boot?executable?jar/war?原理解析

    spring?boot?executable?jar/war?原理解析

    spring boot里其實不僅可以直接以 java -jar demo.jar的方式啟動,還可以把jar/war變?yōu)橐粋€可以執(zhí)行的腳本來啟動,比如./demo.jar,這篇文章主要介紹了spring?boot?executable?jar/war?原理,需要的朋友可以參考下
    2023-02-02
  • Java并發(fā)編程-volatile可見性詳解

    Java并發(fā)編程-volatile可見性詳解

    這篇文章主要介紹了Java并發(fā)編程-volatile可見性詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring Boot 啟動、停止、重啟、狀態(tài)腳本

    Spring Boot 啟動、停止、重啟、狀態(tài)腳本

    今天給大家分享Spring Boot 項目腳本(啟動、停止、重啟、狀態(tài)),通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-06-06
  • Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運行

    Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運行

    這篇文章主要介紹了Java并發(fā)編程示例(七):守護(hù)線程的創(chuàng)建和運行,在本節(jié)示例中,我們將創(chuàng)建兩個線程,一個是普通線程,向隊列中寫入事件,另外一個是守護(hù)線程,清除隊列中的事件,需要的朋友可以參考下
    2014-12-12
  • java 并發(fā)編程之共享變量的實現(xiàn)方法

    java 并發(fā)編程之共享變量的實現(xiàn)方法

    這篇文章主要介紹了java 并發(fā)編程之共享變量的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Mybatis實現(xiàn)ResultMap結(jié)果集

    Mybatis實現(xiàn)ResultMap結(jié)果集

    本文主要介紹了Mybatis實現(xiàn)ResultMap結(jié)果集,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • JAVA實現(xiàn) springMVC方式的微信接入、實現(xiàn)消息自動回復(fù)實例

    JAVA實現(xiàn) springMVC方式的微信接入、實現(xiàn)消息自動回復(fù)實例

    本篇文章主要介紹了JAVA實現(xiàn) springMVC方式的微信接入、實現(xiàn)消息自動回復(fù),這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2016-12-12
  • java list去重操作實現(xiàn)方式

    java list去重操作實現(xiàn)方式

    Java中的List是可以包含重復(fù)元素的(hash code 和equals),接下來將介紹兩種方式實現(xiàn)java list去重操作,感興趣的朋友可以參考下
    2012-12-12

最新評論