JMC 之 内存篇

本文探讨了如何使用Java Mission Control (JMC)工具进行内存监控,以应对JVM内存偏高的问题。在JMC中选择"内存"标签,可实时查看内存使用详情。通过jcmd和jmap命令,可以获得更详细的内存使用信息,进一步分析和优化Java应用的内存管理。
摘要由CSDN通过智能技术生成

前言

在之前的《Java Mission Control(JMC)介绍》中已经介绍了如何使用JMC工具监控JVM的状态,最近在做项目的过程中遇到了内存偏高的情况,这时我想起了JMC工具。

内存监控

连接JVM之后,点击“内存”页签,我们可以看到动态的内存使用详情。

内存

图中各个参数意义:

参数 类型 描述
Code Cache 非堆内存 代码
Mataspace 非堆内存 Java 8之后取代PermGen永久代对内存,存储class类元数据
Eden Gen 堆内存 新生代初始区,new的对象最先放到该区
Survivor Space 堆内存 新生代中转区,平均分成2份From/To,保持一份是空的,GC时会从Eden转到该区
Tenured Gen 堆内存 老年代,GC达到一定次数还存活的对象转到该区

通过在shell中执行jcmd命令可以得到更详细信息

shell>jcmd <PID> VM.native_memory [baseline|detail[.diff]] [scale=kb|mb|gb]

运行结果

Native Memory Tracking:

Total: reserved=172804KB, committed=94236KB
                 Java Heap (reserved=102400KB, committed=53736KB)
                        堆  (mmap: reserved=102400KB, committed=53736KB) 

                     Class (reserved=18221KB, committed=18173KB)
                     元数据  (classes 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值