之前笔者一直使用 JProfiler 来分析性能问题,最近发现 IDEA Ultimate 自带的 Profiler 非常好用,再也不需要安装 JProfiler 了。
另外IDEA Profiler 也要比 免费的 Java JFR Profiler 插件 更加好用,上图为 Java JFR Profiler 演示,界面使用的是 Firefox Profiler html 开发,体验较差。
【资料图】
一、快速开始要在 IDEA Ultimate 中开始分析,请单击 IDE 右上角的三个点或代码行旁边的“Play”图标,然后选择“Profile with IntelliJ Profiler”。
二、CPU和内存分配剖析分析器工具窗口提供了不同的显示已收集数据的方法。您可以选择适合您的方式,热点图、调用树、方法列表、时间轴或事件。
2.1 热点图这个视图可以帮助您可视化选定线程的调用堆栈,并查看它随时间的变化。栈框架越宽,方法执行时间越长。彩色块显示本地代码、库代码和用户代码。
2.2 调用树此视图显示方法使用的 CPU 时间百分比、应用程序中的方法执行路径以及总采样计数。调用树对于快速概述应用程序活动并检测关键执行路径非常有用。
2.3 方法列表此视图显示在分析数据时执行的方法列表。它们都按累积采样时间排序。每个所选的方法都有几个视图,可以向您显示该方法的调用者或被调用者。
2.4 时间轴时间轴是线程活动随时间的视觉表示。它有助于检测异常的 GC 活动、多线程问题(例如死锁)等。
2.5 事件此视图显示与 JVM 事件相关的数据,例如类加载、垃圾回收、操作系统事件等等。
三、CPU和内存实时图表在 Profiler Home 界面你也可以选择其他 java 进程,点击可获取内存和线程快照、实时的 CPU 和 内存使用率图表。与查看静态图表相反,实时数据可以帮助您可视化资源消耗,识别与资源相关的瓶颈,并了解某些事件如何影响程序性能。
四、结果导入IDE 自动将分析结果保存为 .jfr 文件(用于CPU或内存采样)和 .hprof 文件(内存快照),可以在需要时打开它们,也可以打开服务器上导出的快照文件。