亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

NMT 類提交與 Jstat 壓縮類空間

NMT 類提交與 Jstat 壓縮類空間

翻閱古今 2023-11-10 17:03:47
我正在調查 OutOfMemoryError:壓縮類空間問題。我認為,我找到了根本原因和解決方案(Hibernate Validator 方法調用 JAXBContext.newInstance():用戶每次提交操作后的 buildValidatorFactory),但在我的研究過程中,我注意到一件令人困惑的事情。我嘗試運行 jcmd VM.native_memory 和 jstat -gc 來跟蹤類提交大小和 CCSU(壓縮類空間使用情況):d:\experiments>jcmd 59692 VM.native_memory summaryNative Memory Tracking:Total: reserved=10039335KB, committed=889895KB-                 Java Heap (reserved=8353792KB, committed=522240KB)                            (mmap: reserved=8353792KB, committed=522240KB)-                     Class (reserved=1072460KB, **committed=24268KB**)                            (classes #2518)                            (malloc=9548KB #2393)                            (mmap: reserved=1062912KB, committed=14720KB)和d:\experiments>jstat -gc 59692 2s S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT21504,0 21504,0  0,0    0,0   131072,0 56218,7   139264,0    7755,5   14976,0 14318,5 1920,0 1721,7      2    0,012   1      0,036   -          -    0,048我預計 NMT 中的“類提交”指標和 jstat 中的 CCSU 指標之間沒有重大差異,但 jstat 顯示大約僅 1,72 MB 的已用內存,而類提交的已使用內存超過 24 MB。因此,我生成了 GC.class_stats 統計數據,它顯示 KlassBytes 約為 1738616 B -> 1,739 MB - 因此它與 CCSU 中 jstat 顯示的值大致相同。我還發現其余的元數據(如方法、常量等)占用了大約 14,44 MB(這與 mmap 中的值大致相同:commited=14720KB - 但我不知道這個數字是多少)。那么剩下的部分在哪里呢?NMT給出的數字到底是多少?
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

Class本機內存跟蹤報告中的部分顯示了元空間壓縮類空間的聚合數量。


https://img1.sycdn.imooc.com/654df2270001018b06490318.jpg

Java 進程的內存占用演示文稿中的幻燈片


jstat 指標MC,?MU,CCSCCCSU代表

  • 元空間容量

  • 使用的元空間

  • 壓縮類空間容量

  • 已使用的壓縮類空間


因此,本機內存跟蹤顯示的提交與 jstat 指標相關,具有以下不等式:

Class?Committed?>=?MC?+?CCSC?>=?MU?+?CCSU

然而,它們之間的差異可以是任意大的。


從 JDK 10 開始,本機內存跟蹤報告顯示了以下部分的詳細細分Class

-?????Class?(reserved=1073841KB,?committed=28593KB)
????????????(classes?#3967)
????????????(??instance?classes?#3694,?array?classes?#273)
????????????(malloc=689KB?#9228)?
????????????(mmap:?reserved=1073152KB,?committed=27904KB)?
????????????(??Metadata:???)
????????????(????reserved=24576KB,?committed=24576KB)
????????????(????used=24131KB)
????????????(????free=445KB)
????????????(????waste=0KB?=0.00%)
????????????(??Class?space:)
????????????(????reserved=1048576KB,?committed=3328KB)
????????????(????used=3003KB)
????????????(????free=325KB)
????????????(????waste=0KB?=0.00%)



查看完整回答
反對 回復 2023-11-10
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號