首页

通过apache的RamUsageEstimator计算jvm内存占用大小代码示例

标签:RamUsageEstimator,对象内存     发布时间:2022-09-17   

基于apachelucene-core的org.apache.lucene.util.RamUsageEstimator计算对象内存占用大小、对象堆空间的大小及对象及其引用树上的所有对象的综合大小,代码示例如下

import org.apache.lucene.util.RamUsageEstimator;@b@import java.util.ArrayList;@b@import java.util.List;@b@public class SizeUtil {@b@@b@    public static void main(String[] args) {@b@@b@        List<OrderInfo> list = new ArrayList<OrderInfo>();@b@        for(int i=0;i<10000;i++){@b@            OrderInfo orderDTO =new OrderInfo();@b@            orderDTO.setApplyNo("2208300002"+i);@b@            orderDTO.setContractNo("220007798");@b@            orderDTO.setCustId("ssss77021306368762");@b@            orderDTO.setDealerNo("000050");@b@            orderDTO.setActStatus("pass");@b@            orderDTO.setActType("0");@b@            list.add(orderDTO);@b@        }@b@        //计算指定对象及其引用树上的所有对象的综合大小,返回可读的结果,如:2KB@b@        System.out.println("humanSizeOf:"+ RamUsageEstimator.humanSizeOf(list));@b@        //计算指定对象本身在堆空间的大小,单位字节@b@        System.out.println("shallowSizeOf:"+RamUsageEstimator.shallowSizeOf(list));@b@        //计算指定对象及其引用树上的所有对象的综合大小,单位字节@b@        System.out.println("sizeOf:"+RamUsageEstimator.sizeOf(list));@b@@b@@b@@b@    }@b@@b@}

添加依赖pom配置

<dependency>@b@   <groupId>org.apache.lucene</groupId>@b@   <artifactId>lucene-core</artifactId>@b@   <version>4.0.0</version>@b@</dependency>

控制台运行结果

humanSizeOf:1.5 MB@b@shallowSizeOf:24@b@sizeOf:1575752
  • ◆ 相关内容