李锋镝的博客

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

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

2026年8月3日 约 617 字3 分钟 107 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"

推荐阅读

  • try...catch性能深度剖析:从JVM原理到实战优化,打破技术迷思
  • Aeron详解
  • Spring Boot 配置加载优先级总结
  • 记一次Apollo配置中心+Spring配置自动刷新导致的内存泄露问题
  • jasypt-spring-boot 使用说明
除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接

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

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: JAVA JVM 内存 对象
最后更新:2026年8月3日
相关文章
  • SpringBoot常用注解2025年5月28日
  • Java并发编程之如何保证线程顺序执行2021年5月18日
  • 解决IDEA2024UI卡顿问题2024年6月11日
  • 九种常用的UML图总结2019年6月29日
  • 如何在面试中介绍自己的项目经验2019年11月6日

李锋镝

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

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

文章评论

  • 林羽凡Lv 3友

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

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

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

      macOSChrome 151.0.0.0 中国-北京
      2026年8月5日
      00 回复
  • 看别人买瓶红茶都送给女朋友,不由得想起高中时代。高三那年夏天,有一次女神口渴,要她闺蜜给她带瓶水,我赶快把我刚买的红茶递过去。女神很意外,但还是接了过去。我心里正得意地笑呢,女神递回来一个瓶盖说:“还你一瓶水,不欠你了哈!”唉,这“再来一瓶”来的真不是时候!

    听点儿音乐吧 朋友~
    文章目录
    最新 热点 随机
    最新 热点 随机
    每日早报 · 2026年8月20日 · 早上好 Kratos+ v1.1.18版本更新说明 每日早报 · 2026年8月19日 每日早报 · 2026年8月18日 写了一个订阅每日新闻的WP插件 每日早报 · 2026年8月17日
    给主题增加了Now、每日心情、年度回顾、岁月同一天、随机漫步等功能Kratos+ v1.1.16版本更新说明AI时代,个人技术博客的出路在哪里?增加了两套复古皮肤-牛皮纸、千禧网页这个域名注册整整十年了,十年时间,真快啊Kratos+ v1.1.14版本更新说明
    张爱玲——《红玫瑰与白玫瑰》 n8n 全攻略:从安装到实战,打造无代码自动化工作流(2025 最新版) 减肥四个月~ Claude-HUD 使用文档 WordPress评论框增加自定义表情 Claude Code提示词优化指南:从"瞎写"到"高效生成",开发效率提升10倍的实战秘籍
    最近评论
    fairy 发布于 3 小时前(08月24日) 博主用的华为手机?不知道现在的华为手机在国外漫游好用不?主要是信号以及谷歌生态的问题,想买,但又怕。...
    fairy 发布于 4 小时前(08月24日) 四天没更新了吗?
    fairy 发布于 4 小时前(08月24日) 这个系列的主题,是真的用的多啊。我记得我博客以前用的Moedog 改版的,用了八年一直没问题,即便作...
    李锋镝 发布于 4 天前(08月20日) 皮总谦虚了呀
    皮皮社长 发布于 4 天前(08月19日) 李哥越来越凶了,主题也越来越好看。不刺眼。不像我那垃圾主题。羡慕吖~
    标签聚合
    JAVA ElasticSearch Claude MQ AI 架构 Redis SpringBoot Spring MySQL 日常 JVM IDEA SQL 分布式 K8s WordPress 多线程 AI编程 数据库
    友情链接
    • 哥斯拉
    • 懋和道人
    • 蜗牛工作室
    • Mr.Sun的博客
    • 韩小韩博客
    • 韩情脉脉
    • Serendipity
    • 知向前端
    • 林羽凡
    • Honesty
    • 临窗旋墨
    • sssr7844的博客
    • 皮皮社
    • 九仞之行
    • 瓦匠个人小站
    • 若梦博客
    • 搬砖日记
    • 彬红茶日记
    • 志文工作室
    • 老张博客

    COPYRIGHT © 2026 lifengdi.com. ALL RIGHTS RESERVED.

    正在博友圈履约中

    域名年龄

    Theme Kratos+ By Dylan Li

    津ICP备2024022503号-3

    京公网安备11011502039375号