4种方法教你如何查看java对象所占内存大小 |
您所在的位置:网站首页 › java怎么查看变量的内存地址 › 4种方法教你如何查看java对象所占内存大小 |
摘要:本文讲述4种查看java对象所占内存大小的方法
本文分享自华为云社区《查看java对象所占内存大小》,作者:xiewenci。 计算java对象所占内存大小 1.使用jdk8自带API使用这种jdk8方式时,Open JDK 不是天然支持的,需要set一下环境变量 System.setProperty("java.vm.name","Java HotSpot(TM) "); System.out.println(ObjectSizeCalculator.getObjectSize(3L));结果如下: 2. 借助org.apache.lucene工具类当一个对象有多个属性,需要计算整个对象的大小时,可以借助org.apache.lucene工具类 先引入maven坐标 org.apache.lucene lucene-core 4.0.0 org.apache.commons commons-lang3 3.12.0测试代码: Map 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));结果如下: 3. 借助jol工具类如果需要查看某个对象的详细内存分布,可以借助jol工具类,不过这种当对象中内嵌其他对象时,只能计算ClassLayout方法中这个object对象所占内存的大小 先导入maven坐标 org.openjdk.jol jol-core 0.9测试代码: System.out.println(ClassLayout.parseInstance(23L).toPrintable());结果如下: 4. java对象内存分布最后,计算一个对象占用多大内存,需要提前了解java对象的布局。
点击关注,第一时间了解华为云新鲜技术~ 来源:https://my.oschina.net/u/4526289/blog/5545880 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |