查看java對象所占內(nèi)存大小的方法
計算java對象所占內(nèi)存大小
1.使用jdk8自帶API
使用這種jdk8方式時,Open JDK 不是天然支持的,需要set一下環(huán)境變量
System.setProperty("java.vm.name","Java HotSpot(TM) "); System.out.println(ObjectSizeCalculator.getObjectSize(3L));
結(jié)果如下:
2. 借助org.apache.lucene工具類
當一個對象有多個屬性,需要計算整個對象的大小時,可以借助org.apache.lucene工具類
先引入maven坐標
<dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency>
測試代碼:
Map<String, String> map = new HashMap<>(); System.out.println("map init value is " + RamUsageEstimator.sizeOf(map)); for (int i = 0; i < 100; i++) { RandomStringUtils.randomAlphanumeric(100); map.put(RandomStringUtils.randomAlphanumeric(10), RandomStringUtils.randomAlphanumeric(10)); } System.out.println("map size 100, value is " + RamUsageEstimator.sizeOf(map)); System.out.println("map size 100, value is " + RamUsageEstimator.humanSizeOf(map));
結(jié)果如下:
3. 借助jol工具類
如果需要查看某個對象的詳細內(nèi)存分布,可以借助jol工具類,不過這種當對象中內(nèi)嵌其他對象時,只能計算ClassLayout方法中這個object對象所占內(nèi)存的大小
先導入maven坐標
<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version> </dependency>
測試代碼:
System.out.println(ClassLayout.parseInstance(23L).toPrintable());
結(jié)果如下:
以上就是查看java對象所占內(nèi)存大小的方法的詳細內(nèi)容,更多關于java對象內(nèi)存大小的資料請關注腳本之家其它相關文章!
相關文章
一文搞懂并學會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件的詳細教程
這篇文章主要介紹了一文搞懂并學會使用SpringBoot的Actuator運行狀態(tài)監(jiān)控組件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09Socket與ServerSocket類構(gòu)造方法與API
今天小編為大家整理了Socket與ServerSocket類構(gòu)造方法與API,對大家的學習或工作具有一定的參考借鑒價值。需要的朋友可以收藏下,方便下次瀏覽觀看2021-12-12Java中比較運算符compareTo()、equals()與==的區(qū)別及應用總結(jié)
這篇文章主要給大家介紹了關于Java中比較運算符compareTo()、equals()與==的區(qū)別及應用的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧2018-09-09SpringCloud?Feign實現(xiàn)微服務之間相互請求問題
Feign是Netflix開發(fā)的聲明式、模板化的HTTP客戶端,?Feign可以幫助我們更快捷、優(yōu)雅地實現(xiàn)微服務之間的調(diào)用,這篇文章主要介紹了SpringCloud?Feign實現(xiàn)微服務之間相互請求,需要的朋友可以參考下2022-06-06springSecurity之AuthenticationProvider用法解析
這篇文章主要介紹了springSecurity之AuthenticationProvider用法解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03