JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

导读:本篇文章讲解 JVM调优工具Jprofiler分析项目内存和线程的基本操作(六),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题背景

通过自己的项目,简单介绍一下Jprofiler分析内存和线程的基本使用
注意事项:

JVM调优工具Jprofiler无介绍快速安装(附安装包)(一)

JVM主要需要分析的情况

1 Jprofiler的live memory中频繁创建的Java对象:可能是死循环、循环次数太多,递归未终止
2 Jprofiler的live memory中存在大对象:bytes[]应该边读边写,长时间不写导致bytes数组过大
3 Jprofiler的live memory中产生内存泄漏:内存泄漏的时候开启Recorded Objects分析
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)
4 Jprofiler观察web容器的线程最大数:Tomcat的线程容量应该大于最大并发数
5 Jprofiler观察线程阻塞
6 Jprofiler观察线程死锁
7 Jprofiler查看慢sql

Telemetries

1 简要视图
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)
视图中可以看见:

  • Memory内存占用情况,蓝色为已使用的内存,绿色为剩余空闲的内存
  • GC Activity指的是垃圾回收器的活跃度,尖峰是Full GC,一般的是Young GC
  • Classes类的总数,蓝色是先有的总数,绿色是可以继续创建的数量
  • Threads线程数,黄色指的是正在等待的线程数量,蓝色指的是网络IO正在运行的行程数,绿色是正在运行的线程数
  • CPU Load使用率视图,蓝色线指的是系统的CPU使用率,绿色线指的是当前程序的使用率

Memory视图

1 可以看到内存的增长和衰减形成了参差不齐形状,每次峰值拐点处,说明进行了一次GC垃圾回收
2 如果蓝色平均值是不断上升的情况,说明可能存在内存泄漏的情况

在这里插入图片描述
这两个在内存泄漏的时候,再打开查看,否则会造成性能损耗
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

GC Activity视图

1 可以选择GC类型进行查看
2 这里也是可以进行优化的,如果Full GC的次数频率过高,会影响程序整体的性能,因此我们可以通过

  • 去调节垃圾回收器的款式
  • 新生代与老年代的比例
  • 新生代到老年代的年龄
  • 触发Young GC的条件和Full GC的条件

JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

Classes类数量视图

1 查看看类是否无故持续升高,可能出现内存泄漏

JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

Threads线程数视图

1 直观可以看到等待线程很多,这样其实比较消耗资源

  • 可以减少等待的线程数量
  • 如果一直为blocked thread红色占满,说明产生了死锁

JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

CPU Load使用率视图

1 可以看到这个程序的使用率直接影响了系统CPU的使用率,成为了一个正比,而且浮动比较大,是值得优化的地方
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

All Objects视图

1 一般来说,如果有一个类的数量一直在增长,说明有内存泄漏的情况
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)
2 可以通过右键进行查看计数排序
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

Allocation Call Tree内存分配调用树

1 点击Press,可以直观看到内存大概是什么类和方法使用了

JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)
2 点击OK
在这里插入图片描述
3 可以看到,我的程序的内存大部分在线程类里面使用了
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)
4 查看内存热点分配,我都的事分配到了线程
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

Class Tracker类追踪视图

1 选择一个类进行追踪
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

还没写完,后续接着写

JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

作为程序员第 139 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)JVM调优工具Jprofiler分析项目内存和线程的基本操作(六)

Lyric: 心里的眼泪

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110736.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!