李锋镝的博客

  • 首页
  • 时间轴
  • 说说
  • 读书观影
  • 系列
  • AI工具集
  • 论坛
  • 友圈
    • 友链
    • 朋友圈
    • 游客中心
  • 留言
    • 留言
    • 走心评论
  • 关于
    • 关于本站
    • Now
    • 每日心情
    • 网站地图
    • 网站统计
    • 赞助
  • 星球穿梭
  • 🚇开往
静亦定 动亦定
惟坚韧者始能遂其志
  1. 首页
  2. 后端
  3. 正文

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

2026年8月3日 398 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"
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
分享到

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

也可使用浏览器菜单中的「分享」功能

微信扫一扫分享

标签: JAVA JVM 内存 对象
最后更新:2026年8月3日
相关文章
  • Java SPI详解2021年4月16日
  • 从3秒到30毫秒!SpringBoot树形结构深度优化指南:不止于O(n)算法的全链路提速方案2025年10月31日
  • 全网最全Shiro认证与授权原理分析2021年2月16日
  • 解决IDEA2024UI卡顿问题2024年6月11日
  • 解锁 Java 开发全流程效率:17 个必备工具深度指南2025年10月14日

李锋镝

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

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

文章评论

  • 林羽凡Lv 4友

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

    WindowsWindowsChrome 150.0.0.0Chrome 150.0.0.0中国中国-甘肃-兰州
    2026年8月5日
    00 回复
    • 李锋镝博主

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

      macOSmacOSChrome 151.0.0.0Chrome 151.0.0.0中国中国-北京
      2026年8月5日
      00 回复
  • 佳节又重阳,玉枕纱厨,半夜凉初透。

    听点儿音乐吧 朋友~
    文章目录
    最新 热点 随机
    最新 热点 随机
    又一个逆天改命的人:小小徐 AI的生成能力等于生产力吗? NGINX严重漏洞(CVE-2026-15176、CVE-2026-93479、CVE-2026-97205) Kratos-plus v1.1.27更新说明 php2shell远程执行漏洞修复(CVE-2026-109618 和 CVE-2026-109619) 聊一聊DeepSeek开放自研搜索API这事
    给主题增加了游客中心功能心气没了,干什么都不得劲我觉得是时候公布我的导航网站了游本昌去世关于主题加载速度优化的一点儿小演进给主题增加了Now、每日心情、年度回顾、岁月同一天、随机漫步等功能
    maven依赖本地jar包 学习算法必备知识:时间复杂度与空间复杂度的计算 深度解析 RAG 技术:从原理到落地,构建高精度检索增强生成系统 Java并发编程之如何保证线程顺序执行 深度解析多级缓存架构:从设计到落地,彻底解决数据一致性难题 阿里巴巴《Java开发手册》下载
    最近评论
    李锋镝 发布于 5 小时前(11月02日) 良田是啥?
    李锋镝 发布于 5 小时前(11月02日) 哈哈哈,我也希望
    李锋镝 发布于 5 小时前(11月02日) 看最新的说是骗流量的,哎
    女装品牌前十名 发布于 18 小时前(11月01日) 文章不错非常喜欢,支持一下
    彬红茶 发布于 22 小时前(11月01日) 我也刷到这个了,不知道你有没有刷过良田
    标签聚合
    Theme 分布式 ElasticSearch WordPress Redis 多线程 架构 AI编程 AI Claude SpringBoot K8s 数据库 IDEA SQL JVM JAVA MySQL 日常 Spring
    友情链接
    • 搬砖日记
    • Mr.Sun的博客
    • 哥斯拉
    • 皮皮社
    • 彬红茶日记
    • sssr7844的博客
    • Honesty
    • 知向前端
    • 懋和道人
    • 志文工作室
    • 韩小韩博客
    • 九仞之行
    • lijie blog
    • 老张博客
    • 韩情脉脉
    • 林羽凡
    • Serendipity
    • 瓦匠个人小站
    • 刘永博客

    COPYRIGHT © 2016-2026 lifengdi.com. ALL RIGHTS RESERVED.

    lifengdi.com 十年之约虫洞

    Domain age badge for lifengdi.com

    Theme Kratos-plus By Dylan Li

    津ICP备2024022503号-3

    京公网安备11011502039375号