我正在計算java對象[hashmap]的大小[內存使用]。它包含不同數據類型的元素[在運行時],所以[元素大小]不是一種好的方法。該代碼現在按系列執行它計算Java對象的字節大小
if (x)
do something
else if (primitives)
lookup size and calculate
但是,此過程是一個CPU繁忙且無效。
我想到的是以下2種方法代替:
- 序列化對象的緩衝區,並獲得大小。
- 查找到的java.lang.instrument得到
我找任何人使用這些方法的性能,效率,縮放等,或如果你知道什麼更好的方法經驗的大小。
P.S: 這是一個背景實用程序,我正在建設,所以大小不需要超級準確,但它應該是正確的。所以我願意犧牲精度性能
我不感興趣的深尺寸[受此對象refered將不被計算對象的大小。]
我正在尋找一個性能比較和理解getObjectSize()內部是如何工作..所以我不messup別的東西來提高性能
感謝
什麼*確切*你的意思是大小?內存佔用量?包含的元素數量? – 2010-10-21 00:32:37
的大小,我的意思是採取的內存量..編輯反映, – codeObserver 2010-10-21 00:42:20
或多或少相同的問題:http://stackoverflow.com/questions/757300/programatically-calculate-memory-occupied-by-a-java- object-including-objects-it-r – andersoj 2010-10-21 01:08:04