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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

使用jconsole监控JVM内存

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用jconsole监控JVM内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先聲明:此篇博文分析的是JDK1.8。

JVM內存區域總體分兩類:heap區和非heap區。Jconsole中對內存劃分為同樣的結構,如下:

??

heap區又分為:?
  - Eden Space(伊甸園)
  - Survivor Space(幸存者區) ,Survivor Space分為兩個空間大小一樣的區域,分別是To Survivor和From Survivor,并且始終保持一個Survivor是空的
  - Old Gen(老年代)

Eden Space:字面意思是伊甸園,對象被創建的時候首先放到Eden Space,進行垃圾回收后,不能被回收的對象被放入到空的Survivor區域。

Survivor Space:幸存者區,用于保存在eden space內存區域中經過垃圾回收后沒有被回收的對象。Survivor有兩個,分別為To Survivor、 From Survivor,這個兩個區域的空間大小是一樣的。執行垃圾回收的時候Eden區域不能被回收的對象被放入到空的survivor(也就是To Survivor,同時Eden區域的內存會在垃圾回收的過程中全部釋放),另一個survivor(即From Survivor)里不能被回收的對象也會被放入這個survivor(即To Survivor),然后To Survivor 和 From Survivor的標記會互換,始終保證一個survivor是空的。

Eden Space和Survivor Space都屬于新生代,新生代中執行的垃圾回收被稱之為Minor GC(因為是對新生代進行垃圾回收,所以又被稱為Young GC),每一次Young GC后留下來的對象age(年齡)加1,這個age就是用來判斷對象是否進入老年的標志。

Old Gen:老年代,用于存放新生代中經過多次垃圾回收仍然存活的對象,也有可能是新生代分配不了內存的大對象會直接進入老年代。經過多次垃圾回收都沒有被回收的對象,這些對象的age已經足夠old了,就會放入到老年代。

當老年代被放滿之后,虛擬機會進行垃圾回收,稱之為Major GC。由于Major GC除并發GC外均需對整個堆進行掃描和回收,因此又稱為Full GC。

heap區即堆內存,整個堆大小=年輕代大小 + 老年代大小。堆內存默認為物理內存的1/64(<1GB);默認空余堆內存小于40%時,JVM就會增大堆直到-Xmx的最大限制,可以通過MinHeapFreeRatio參數進行調整;默認空余堆內存大于70%時,JVM會減少堆直到-Xms的最小限制,可以通過MaxHeapFreeRatio參數進行調整。

?

下面我們來認識下非堆內存(非heap區)?
Code Cache:代碼緩存區,它主要用于存放JIT所編譯的代碼。CodeCache代碼緩沖區的大小在client模式下默認最大是32m,在server模式下默認是48m,這個值也是可以設置的,它所對應的JVM參數為ReservedCodeCacheSize 和 InitialCodeCacheSize,可以通過如下的方式來為Java程序設置。

-XX:ReservedCodeCacheSize=128m

CodeCache緩存區是可能被充滿的,當CodeCache滿時,后臺會收到CodeCache is full的警告信息,如下所示:?
“CompilerThread0” java.lang.OutOfMemoryError: requested 2854248 bytes for Chunk::new. Out of swap space?

注:JIT編譯器是在程序運行期間,將Java字節碼編譯成平臺相關的二進制代碼。正因為此編譯行為發生在程序運行期間,所以該編譯器被稱為Just-In-Time編譯器。

轉載于:https://www.cnblogs.com/jiangwangxiang/p/9096074.html

總結

以上是生活随笔為你收集整理的使用jconsole监控JVM内存的全部內容,希望文章能夠幫你解決所遇到的問題。

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