当前位置: 首页 > ai >正文

项目拓展-Jol分析本地对象or缓存的内存占用

 Jol可在开发过程中对数据两极进行评估判断是否可以使用本地缓存

依赖

<dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.16</version>
</dependency>

测试类

@Test
void test4() {List<IpBlacklistVO> ipBlacklistVOS = ipBlacklistDao.queryAllIp();log.info("数据:{}", ipBlacklistVOS);log.info("单个IpBlacklistVO内存布局:\n{}",ClassLayout.parseClass(IpBlacklistVO.class).toPrintable());// 分析整个列表内存占用log.info("列表总内存占用: {} bytes",GraphLayout.parseInstance(ipBlacklistVOS).totalSize());// 可选: 查看详细内存分布log.info("详细内存分布:\n{}",GraphLayout.parseInstance(ipBlacklistVOS).toFootprint());
}

输出

单个占用内存

[2025-05-07 12:18:33,260][INFO ][main] 单个IpBlacklistVO内存布局:
net.lab1024.sa.admin.module.phabusiness.ipblacklist.domain.vo.IpBlacklistVO object internals:
OFF  SZ               TYPE DESCRIPTION               VALUE0   8                    (object header: mark)     N/A8   4                    (object header: class)    N/A12   4   java.lang.String IpBlacklistVO.ip          N/A
Instance size: 16 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total

列表占用内存

[2025-05-07 12:18:33,330][INFO ][main] 列表总内存占用: 267472 bytes (TestDelete.java:89)

内存详细分布

[2025-05-07 12:18:33,398][INFO ][main] 详细内存分布:
java.util.ArrayList@1343b038d footprint:COUNT       AVG       SUM   DESCRIPTION3483        32    111456   [B1     16672     16672   [Ljava.lang.Object;3483        24     83592   java.lang.String1        24        24   java.util.ArrayList3483        16     55728   net.lab1024.sa.admin.module.phabusiness.ipblacklist.domain.vo.IpBlacklistVO10451              267472   (total)
http://www.xdnf.cn/news/14100.html

相关文章:

  • pdb/sdf转pdbqt错误、pdbqt小分子文件对接蛋白质dock分数为0
  • 基于Python学习《Head First设计模式》第十四章 剩下的模式
  • 算法C实现--第16章习题集-外部查找
  • 从事算法工作对算法刷题量的需求
  • 0到1案例演示 vue + axios 请求 springboot 的 restful 风格接口(前后端分离+跨域问题)
  • k8s的开篇学习和安装
  • 1.0 前言(Python系列教程)
  • 深入解析JVM字节码执行引擎
  • 基于GNU Radio Companion搭建的FM信号及数字通信
  • python: wxpython 4.2 开发一个邮件客户端,能编写邮件,发送邮件及附件
  • Ubuntu中Chromium无法使用Fcitx输入中文的问题
  • PySpark 使用pyarrow指定版本
  • cesium入门
  • 剖析电商搜索要点并基于Es+Redis模拟电商搜索行为
  • Flink task、Operator 和 UDF 之间的关系
  • 【系统分析师】2009年真题:案例分析-答案及详解
  • HQL 优化:从低效到高效的蜕变之旅
  • Python 函数
  • UE5反射系统分析(一)generated.h
  • 日本生活:日语语言学校-日语作文-沟通无国界(1)-题目:假装写日记
  • 【精选】计算机毕业设计SpringBoot车辆保险理赔平台 保险登记 出险申报 理赔审核进度管理系统源码+论文+PPT+讲解
  • 拆解 CMS/G1/ZGC 三种垃圾回收器算法过程
  • 228永磁同步电机无速度算法--基于双重锁相环的滑模观测器
  • 【FineDance】ModuleNotFoundError: No module named ‘pytorch3d‘
  • 时间序列数据库技术深度解析:核心原理与最佳实践
  • Windows安装部署jenkins
  • YOLOv8分类的三种C++实现:opencv dnn/libtorch/onnxruntime
  • 【编译原理】第九章 运行时存储
  • 2025-06-14【视觉】批量筛选图集中包含某种物体对象的方法
  • Spring Framework 执行链路设计