李锋镝的博客

  • 首页
  • 时间轴
  • 说说
  • 左邻右舍
  • 博友圈
  • 关于我
    • 关于我
    • 另一个网站
    • 我的导航站
    • 网站地图
    • 赞助
  • 留言
  • 走心评论
  • 系列文章
  • Now
  • 每日心情
  • 🚇开往
Destiny
自是人生长恨水长东
  1. 首页
  2. 后端
  3. 正文

如何通过命令查看Java应用内存中对象数量

2026年8月3日 约 617 字3 分钟 35点热度 1人点赞 2条评论

这个算是比较常用的一个Java工具了,记录一下。

一、最常用:jmap -histo(JDK 自带)

# 查看所有对象的实例数和内存占用(按大小排序)
jmap -histo <pid>

# 只看存活对象(先触发一次 Full GC,再统计)
jmap -histo:live <pid>

输出示例

 num     #instances         #bytes  class name
----------------------------------------------
   1:       1234567       98765432  [C  (char数组,字符串底层)
   2:        567890       45678901  java.lang.String
   3:        345678       34567890  java.util.HashMap$Node
   4:        234567       23456789  com.xxx.User
列 含义
#instances 对象实例数量
#bytes 占用内存字节数
class name 类名

常用技巧

# 只看某个类的对象数量(用 grep 过滤)
jmap -histo <pid> | grep "SpringValue"

# 输出到文件,方便后续分析
jmap -histo <pid> > obj_histogram.txt

# 看 Top 20 最大的对象
jmap -histo <pid> | head -25

二、更强大:jcmd(JDK 自带,推荐)

jcmd 是 JDK 8+ 推荐的诊断工具,功能比 jmap 更全:

# 列出所有 Java 进程
jcmd -l

# 查看对象直方图(等价于 jmap -histo)
jcmd <pid> GC.class_histogram

# 只看存活对象
jcmd <pid> GC.class_histogram -all=false

三、实时监控:Arthas

阿里开源的 Java 诊断工具,功能最强大,不用重启应用:

# 安装启动
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

# 选择进程后,查看对象统计
vmtool --action getInstances --className com.xxx.User --limit 10

# 查看某个类的实例数量
vmtool --action getInstances --className com.xxx.User | wc -l

# 查看对象详情
vmtool --action getInstances --className com.xxx.User --limit 1 -x 2

四、导出堆快照后分析

如果需要深度分析,先导出堆转储文件,再用 MAT / JVisualVM 分析:

# 导出堆快照(hprof 格式)
jmap -dump:format=b,file=heap.hprof <pid>

# 或用 jcmd
jcmd <pid> GC.heap_dump heap.hprof

然后用 MAT(Memory Analyzer Tool) 打开,可以:

  • 查看对象数量、占比、内存泄漏分析
  • 用 OQL(对象查询语言)写复杂查询
  • 查看对象引用链

五、快速对比:哪个命令适合你

工具 自带 实时 功能 推荐场景
jmap -histo ✅ JDK自带 快照 基础统计 快速排查、线上应急
jcmd ✅ JDK自带 快照 比jmap全 JDK8+ 首选
Arthas ❌ 需安装 实时 非常强大 深度诊断、日常开发
MAT ❌ 需安装 离线 最强分析 内存泄漏根因定位

快速上手示例

# 1. 先找到 Java 进程 ID
jps -l

# 2. 查看对象数量 Top 10
jmap -histo 12345 | head -15

# 3. 查特定类的实例数
jmap -histo 12345 | grep "SpringValue"
除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.lifengdi.com/hou-duan/4868

推荐阅读

  • try...catch性能深度剖析:从JVM原理到实战优化,打破技术迷思
  • Spring Boot 配置加载优先级总结
  • 记一次Apollo配置中心+Spring配置自动刷新导致的内存泄露问题
  • jasypt-spring-boot 使用说明
  • 配置Jackson使用字段而不是getter/setter来序列化和反序列化
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: JAVA JVM 内存 对象
最后更新:2026年8月3日

岁月同一天 8 月 10 日

回望过去的今天,你在写什么

  • 4 年前 2022年8月10日
    Linux开启FTP

    1、安装 vsftpd sudo yum install -y vsftpd 2、设置 vsftpd 开机自启动 sud…

相关文章
  • CPU飙高,系统性能问题如何排查?2020年10月9日
  • 别再背线程池的七大参数了,现在面试官都这么问2025年5月15日
  • SpringBoot使用注解的方式构建Elasticsearch查询语句,实现多条件的复杂查询2019年9月12日
  • 如何在面试中介绍自己的项目经验2019年11月6日
  • 解锁 Java 开发全流程效率:17 个必备工具深度指南2025年10月14日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
下一篇 >
1234567891112131415161718192021222324252627282930313233343536373839404142434446474849505152535455575859606162636465666769727476777879808182858687909293949596979899
取消回复
…

文章评论

  • 林羽凡Lv 3友

    哎呀我天,我点了右侧的奢香夫人,突然感觉有一种进抖音的感觉。

    WindowsChrome 150.0.0.0 中国-兰州市
    2026年8月5日
    00 回复
    • 李锋镝管理

      @林羽凡 hahaha,好听的歌可以推荐一下,不定期更新歌单

      macOSChrome 151.0.0.0 中国-北京市
      2026年8月5日
      00 回复
  • 生命中所有的灿烂,终要用寂寞偿还。

    听点儿音乐吧 朋友~
    文章目录
    最新 热点 随机
    最新 热点 随机
    Kratos+ v1.1.14版本更新说明 Spring Boot 指定外部配置文件的方式 Spring Boot 配置加载优先级总结 Claude Fable 5(claude-fable-5)深度详解 如何通过命令查看Java应用内存中对象数量 关于服务的探活端口和业务端口不一致有什么问题
    给主题增加了Now、每日心情、年度回顾、岁月同一天、随机漫步等功能AI时代,个人技术博客的出路在哪里?增加了两套复古皮肤-牛皮纸、千禧网页这个域名注册整整十年了,十年时间,真快啊WordPress实现用户评论等级排行榜插件WordPress网站换了个字体,差点儿把样式换崩了
    内存屏障浅析 深入了解PostgreSQL TestNG基本注解 缓存架构实战指南:6大核心缓存技术深度解析与落地方案 Tomcat7.0配置CORS(跨域资源共享) 使用AbstractRoutingDataSource动态切换数据源
    最近评论
    Hary 发布于 11 小时前(08月09日) 我都想用了,但是是ty,转换有点麻烦
    老张博客 发布于 2 天前(08月08日) 做的越来越精美了,好看。
    Huo 发布于 2 天前(08月07日) 挺有特色的主题,还是感觉 WP 的确是强大
    李锋镝 发布于 3 天前(08月07日) 没理解你想说啥
    aboss 发布于 3 天前(08月07日) 你的后台web-login?
    标签聚合
    Claude AI WordPress 架构 SpringBoot AI编程 docker Spring 日常 ElasticSearch IDEA JVM 多线程 SQL MySQL JAVA 分布式 Redis K8s 数据库
    友情链接
    • 老张博客
    • Mr.Sun的博客
    • 知向前端
    • 瓦匠个人小站
    • 皮皮社
    • 林羽凡
    • 志文工作室
    • 旧时繁华
    • 韩情脉脉
    • 拾趣博客导航
    • 临窗旋墨
    • 懋和道人
    • 哥斯拉
    • Honesty
    • Blogs·CN
    • 韩小韩博客
    • 搬砖日记
    • 风渡言
    • 彬红茶日记

    COPYRIGHT © 2026 lifengdi.com. ALL RIGHTS RESERVED.

    正在博友圈履约中

    域名年龄

    Theme Kratos+ By Dylan Li

    津ICP备2024022503号-3

    京公网安备11011502039375号