沒有記憶體池什么的可以記錄記憶體使用量....
提出需求是監控某個執行緒里一組物件實際的記憶體占用
俺通過lucene的org.apache.lucene.util.RamUsageEstimator的
sizeOfObject、sizeOfMap一類的函式計算了HEADER 然后手動把各種參考型別、容器計算了,得出個數,但腫么判斷這個數是對得呢....?
因為資料型別忒復雜,又是map又是大量相互參考,用jvisualvm這類工具杵了半天也沒搜集齊全
試過通過操作前后計算JVM堆記憶體增長差值,好像也說明不了什么...因為用記憶體的不只這一塊...

求放過,抓壯丁被拉去客串java開發的
uj5u.com熱心網友回復:
執行緒的stack及控制塊的大小?uj5u.com熱心網友回復:
控制塊的大小這個是....?
uj5u.com熱心網友回復:
用反射不能算出來?主要是string是可變長度,數字型別的在定義時就決定了大小了uj5u.com熱心網友回復:
也是個方法,但現在最要緊問題.........怎么結果驗證呢?
簡單結構還能掰手指頭算算,復雜型別就抓蝦...
uj5u.com熱心網友回復:
java.lang.instrument.Instrumentation 看這個滿足你需求不uj5u.com熱心網友回復:
實際記憶體占用?uj5u.com熱心網友回復:
理論上需要遍歷類里的每個基本型別(包括類里的類),當然可能有相關的工具類,可以找找看。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/20853.html
標籤:Java EE
上一篇:Golang Map 實作(二)
下一篇:如何用Github鉤子做自動部署
