jprofile 正确使用姿势

237 阅读1分钟

jprofile image.png 主要功能:

  • 方法调用:对方法调用的分析可以帮助您了解应用程序正在做什么,并找到提高其性能的方法
  • 内存分配:通过分析堆上的对象,引用链和垃圾收集能帮您修复内存泄露问题,优化内存使用
  • 线程和锁:jprofiler 提供多种针对线程和锁的分析视图帮助你发现多线程问题
  • 高级子系统:许多性能问题都发生在更高的语义级别上,例如 对于JDBC调用,您可能希望找出执行最慢的sql语句,还支持对这些子系统集成分析

image.png

  • 上面第一个 保存session也就是连接信息,
  • 上面第二个 连接到本地启动的java服务,或者远程的java服务
  • 上面第三个 与第二个类似
  • 上面第四个 打开一个离线的堆快照

数据采集方式:

  • instrumentation 重构模式
  • sampling 抽样模式 image.png

遥感监测视图中相关监测数据:堆内存 gc

内存视图分析

image.png image.png

  • 分析 内存中对象的情况
    • 频繁创建的对象: eg 死循环,循环次数过多
    • 存在大的对象: eg 读取文件时,byte[] 应该边读边写
    • 内存卸扣问题: gc后剩余堆空间单调递增的,开始recorded Objects 分析内存泄露问题

heap walker 分析

CPU 视图 分析

线程 视图 分析

image.png

  • 线程分析主要关心三个方面
    • web容器的最大线程数 比如 tomcat的线程容量略大于最大并发数
    • 线程阻塞
    • 线程死锁