tft每日頭條

 > 科技

 > jvm内存詳細結構

jvm内存詳細結構

科技 更新时间:2024-10-02 10:47:06

jvm内存詳細結構(JVM參數MetaspaceSize和MaxMetaspaceSize的理解)1

前不久在JVM群裡阿飛和泉子在讨論metaspace的兩個參數的含義,我看了下阿飛的文章——JVM參數MetaspaceSize的誤解,問題主要是對這兩個參數的理解有點誤解。

今天下午發現在沒有設置MetaspaceSize的情況下,從Mxbean獲取的max值是-1,因此就連帶這個問題也一塊搞了搞,總結如下:

  • MaxMetaspaceSize用于設置metaspace區域的最大值,這個值可以通過mxbean中的MemoryPoolBean獲取到,如果這個參數沒有設置,那麼就是通過mxbean拿到的最大值是-1,表示無窮大。
  • MetaspaceSize表示metaspace首次使用不夠而觸發FGC的阈值,隻對觸發起作用,原因是:垃圾搜集器内部是根據變量_capacity_until_GC來判斷metaspace區域是否達到阈值的,初始化代碼如下所示:

void MetaspaceGC::initialize() { // Set the high-water mark to MaxMetapaceSize during VM initializaton since // we can't do a GC during initialization. _capacity_until_GC = MaxMetaspaceSize; }

  • GC收集器會在發生對metaspace的回收會,會計算新的_capacity_until_GC值,以後發生FGC就跟MetaspaceSize沒有關系了

jvm内存詳細結構(JVM參數MetaspaceSize和MaxMetaspaceSize的理解)2

  • 如果不設置MetaspaceSize,則默認的_capacity_until_GC為20M左右,具體代碼如下:

jvm内存詳細結構(JVM參數MetaspaceSize和MaxMetaspaceSize的理解)3

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved