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

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

jmap工具僅在根和輸出列不清楚時才起作用

jmap工具僅在根和輸出列不清楚時才起作用

蠱毒傳說 2021-04-09 18:15:44
在具有Oracle JDK 10.0.1-64bits的Ubuntu Mate 18.04-64bits上使用jmap時,該工具僅在以root身份運行目標和工具時才有效,但是使用同一普通用戶運行這兩個工具會出現以下錯誤:Exception in thread "main" com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file /proc/13538/cwd/.attach_pid13538: target process 13538 doesn't respond within 10500ms or HotSpot VM not loadedat jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:103)at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)at jdk.jcmd/sun.tools.jmap.JMap.executeCommandForPid(JMap.java:124)at jdk.jcmd/sun.tools.jmap.JMap.main(JMap.java:114)使用root用戶運行以下命令時jmap -clstats <pid>一切正常,但我發現在理解輸出列的含義時遇到了一些困難:是否有任何官方文檔解釋每列的含義?
查看完整描述

1 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

通過運行此命令,可以預期與ClassLoader相關的輸出,但是在JDK8中對其進行了修改,以打印jcmd {pid} GC.class_stats命令的結果??梢栽贘DK-8010507和JDK-8195682問題中找到一些詳細信息。

至于輸出-沒有比這更多的文檔了。一些描述可以在OpenJDK VM源代碼heapInspection.cpp文件中找到。我發現此輸出不太有用,但是這里有一些解釋(基于此標頭中的描述以及Java類格式description):

  • 索引:該類的索引。

  • 超級:超類的索引。如果為-1,則不存在超類(例如,針對數組類型的情況)

  • InstBytes:該類的所有實例占用的字節數(以字節為單位)。

  • KlassBytes:類本身占用的字節數(以字節為單位)。(此類的InstanceKlass或ArrayKlass的大小。)

  • 注解:所有注解的大?。ㄒ宰止潪閱挝唬?/p>

  • CpAll:常量池所有部分的大?。–p + CpTags + CpCache + CpOperands + CpRefMap的總和)

  • MethodCount:此類中的方法編號(包括構造函數)

  • 字節碼:類中字節碼命令占用的大小

  • MethodAll:方法及其元數據所占用的所有空間的總和(MethodBytes + Constmethod + Stackmap + Methoddata)

  • ROAll:可以(可能)放置在只讀內存中的所有類元數據的大小。(這可能會隨著CDS設計而改變)

  • RWAll:必須放置在讀/寫存儲器中的所有類元數據的大小。(這可能會隨著CDS設計而改變)

  • 總計: ROAll + RWAll。請注意,這不包括InstBytes(因此實例不占用空間)

  • ClassName:完全限定的類名稱。

希望能幫助到你。


查看完整回答
反對 回復 2021-04-21
  • 1 回答
  • 0 關注
  • 286 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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