查看jvm运行情况

使用 jps 或top显示当前所有java进程pid

详细的使用方法可参考博客:
https://blog.csdn.net/u013250071/article/details/80496623
https://blog.csdn.net/weixin_42447959/article/details/81637909
https://segmentfault.com/a/1190000020964252
https://segmentfault.com/a/1190000020104437
https://segmentfault.com/a/1190000020219289
https://segmentfault.com/a/1190000017795841
使用 jstat -gcutil 8968 500 5 每500毫秒打印一次Java堆状况(各个区的容量、使用容量、gc时间等信息),打印5次
在这里插入图片描述
各参数的含义如下:

    S0  -- Heap上的 Survivor space 0 区已使用空间的百分比 
    S1  -- Heap上的 Survivor space 1 区已使用空间的百分比 
    E   -- Heap上的 Eden space 区已使用空间的百分比 
    O   -- Heap上的 Old space 区已使用空间的百分比 
    P   -- Perm space 区已使用空间的百分比 
    YGC -- 从应用程序启动到采样时发生 Young GC 的次数 
    YGCT-- 从应用程序启动到采样时 Young GC 所用的时间(单位秒) 
    FGC -- 从应用程序启动到采样时发生 Full GC 的次数 
    FGCT-- 从应用程序启动到采样时 Full GC 所用的时间(单位秒) 
    GCT -- 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

在这里插入图片描述

用jmap(Memory Map for Java)查看堆内存信息
执行jmap -histo pid可以打印出当前堆中所有每个类的实例数量和内存占用,如下,class name是每个类的类名([B是byte类型,[C是char类型,[I是int类型),bytes是这个类的所有示例占用内存大小,instances是这个类的实例数量:
在这里插入图片描述

使用:
jmap -dump:format=b,file=D:/log/jvm/dumpfile_jmap.hprof 3361
把当前堆内存的快照转储到dumpfile_jmap.hprof文件中,然后可以对内存快照进行分析。

另外,可以使用jdk的目录下的bin目录下的:jvisualvm.exe
双击后就可以运行,可以查看jvm的一些信息:
在这里插入图片描述

调优分析:
物理内存一定的情况下,新生代设置越大,老年代就越小,Full GC频率就越高,但Full GC时间越短;相反新生代设置越小,老年代就越大,Full GC频率就越低,但每次Full GC消耗的时间越大,建议:
-Xms和-Xmx的值设置成相等,堆大小默认为-Xms指定的大小,默认空闲堆内存小于40%时,JVM会扩大堆到-Xmx指定的大小;空闲堆内存大于70%时,JVM会减小堆到-Xms指定的大小。如果在Full GC后满足不了内存需求会动态调整,这个阶段比较耗费资源。

新生代尽量设置大一些,让对象在新生代多存活一段时间,每次Minor GC 都要尽可能多的收集垃圾对象,防止或延迟对象进入老年代的机会,以减少应用程序发生Full GC的频率。

老年代如果使用CMS收集器,新生代可以不用太大,因为CMS的并行收集速度也很快,收集过程比较耗时的并发标记和并发清除阶段都可以与用户线程并发执行。

方法区大小的设置,1.6之前的需要考虑系统运行时动态增加的常量、静态变量等,1.7只要差不多能装下启动时和后期动态加载的类信息就行。

上面的调优分析是直接抄的上面的第二个博客的。盗用一下。
相关链接:
https://www.cnblogs.com/yjd_hycf_space/p/7753847.html
https://blog.csdn.net/mr__fang/article/details/68496248

使用jstack查看栈的信息:

参考:
https://blog.csdn.net/mr__fang/article/details/68496248

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值