maven
utilcom.carrotsearch java-sizeof 0.0.3
public class SizeOfUtil { public static enum SizeEnum { B { @Override public double getFromByteSize(long byteSize) { return byteSize; } },K { @Override public double getFromByteSize(long byteSize) { return byteSize*1.0/1024; } },M { @Override public double getFromByteSize(long byteSize) { return byteSize*1.0/1024/1024; } },G { @Override public double getFromByteSize(long byteSize) { return byteSize*1.0/1024/1024/1024; } }; public abstract double getFromByteSize(long byteSize); } /** * 默認 * 返回bytes * @param o * @return */ public static double getObjectSize(Object o,SizeEnum sizeEnum){ long byteSize = 0; if(o instanceof Collection>){ byteSize = RamUsageEstimator.sizeOfAll(o); }else{ byteSize = RamUsageEstimator.sizeOf(o); } return sizeEnum.getFromByteSize(byteSize); } }使用
System.out.println(SizeOfUtil.getObjectSize(map, SizeOfUtil.SizeEnum.K));
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66952.html
計算前提 JDK 版本,不同版本的類可能會有變化 要區分是 32bit 還是 64bit 系統 是否開啟壓縮指針(默認開啟,指針為 4Byte,否則為 8Byte) 是否數組,數組對象頭多了一個長度值,占 4Byte 計算方法 對象所占內存 = 對象頭 + 所有域 + 填充其中,若域為另一個對象,即非基本類型,則需遞歸計算 對象頭 對象頭分為3部分: mark word:同步狀態、GC狀態、...
摘要:下面是線程相關的熱門面試題,你可以用它來好好準備面試。線程安全問題都是由全局變量及靜態變量引起的。持有自旋鎖的線程在之前應該釋放自旋鎖以便其它線程可以獲得自旋鎖。 最近看到網上流傳著,各種面試經驗及面試題,往往都是一大堆技術題目貼上去,而沒有答案。 不管你是新程序員還是老手,你一定在面試中遇到過有關線程的問題。Java語言一個重要的特點就是內置了對并發的支持,讓Java大受企業和程序員...
摘要:對于不同的實現,對象占用的內存空間大小可能不盡相同,本文主要分析中的情況,實驗環境為位系統,使用進行結論驗證。內存占用這里分析一個只有一組鍵值對的結構如下首先分析本身的大小。 本文深入分析并驗證了不同Java對象占用內存空間大小的情況。對于不同的jvm實現,Java對象占用的內存空間大小可能不盡相同,本文主要分析HotSpot jvm中的情況,實驗環境為64位window10系統、JD...
摘要:當復制集合中的所有元素來創建新的集合時,要求集合中的所有元素必須是同一個枚舉類的枚舉值各實現類的性能分析的性能總比好,特別是最常用的添加查詢元素等操作。因為需要額外的紅黑樹算法來維護集合元素的次序。在創建時進行,以防對集合的意外非同步訪問 HashSet 大多時候使用Set集合時就是使用HashSet實現類。HashSet按Hash算法來存儲集合中的元素,因此具有很好的存取和查找性能 ...
摘要:由于的自動內存管理系統要求對象起始地址必須是字節的整數倍,換句話說,就是對象的大小必須是字節的整數倍。對象大小計算要點在位系統下,存放指針的空間大小是字節,是字節,對象頭為字節。靜態屬性不算在對象大小內。 jvm系列 垃圾回收基礎 JVM的編譯策略 GC的三大基礎算法 GC的三大高級算法 GC策略的評價指標 JVM信息查看 GC通用日志解讀 jvm的card table數據結構 Ja...
閱讀 854·2023-04-26 00:11
閱讀 2655·2021-11-04 16:13
閱讀 2101·2021-09-09 09:33
閱讀 1471·2021-08-20 09:35
閱讀 3816·2021-08-09 13:42
閱讀 3604·2019-08-30 15:55
閱讀 1037·2019-08-30 15:55
閱讀 2218·2019-08-30 13:55