JProfiler for Mac 是一款专业的多合一Java分析器。用于分析正在运行的JVM内部发生的事情。当您的生产系统遇到问题时,您可以在开发、质量保证和消防任务中使用它。JProfiler的UI作为桌面应用程序提供。您可以在不使用UI的情况下以交互方式自动分析实时JVM或配置文件。分析数据保存在可以使用JProfiler UI打开的快照中。此外,命令行工具和构建工具集成可帮助您实现分析会话的自动化。
JProfiler 支持以下操作模式:
本地会话的实时分析
一旦您定义了应用程序的启动方式,JProfiler 就可以对其进行概要分析,并且您可以立即看到来自概要分析的 JVM 的实时数据。为了消除对会话配置的需要,您可以使用众多 IDE 插件之一 从您喜欢的 IDE 中分析应用程序。
远程会话的实时分析
通过修改 java start 命令的 VM 参数,您可以让任何 Java 应用程序监听来自 JProfiler GUI 的连接。配置的应用程序不仅可以在您的本地计算机上运行,JProfiler 还可以通过网络附加到配置的应用程序。此外,JProfiler 为所有流行的应用程序服务器提供了 大量集成向导,帮助您设置应用程序以进行分析。
离线分析和触发器
您不必通过 JProfiler GUI 连接到被分析的应用程序来对其进行分析:通过 离线分析, 您可以使用 JProfiler 强大的触发系统或 JProfiler API 来控制分析代理并将快照保存到磁盘。稍后您可以在 JProfiler GUI 中打开这些快照,或者使用命令行导出工具或导出 ant 任务以编程方式导出分析视图。
快照对比
在 JProfiler 中,您可以将所有当前分析数据的快照保存到磁盘。JProfiler 提供了丰富的比较工具来查看两个或多个快照之间发生了什么变化。或者,您可以使用命令行比较工具或比较 ant 任务以编程方式创建比较报告。
查看 HPROF 快照
JProfiler 可以打开使用 jconsole 或 jmap 等 JVM 工具拍摄的或由 -XX:+HeapDumpOnOutOfMemoryError JVM 参数触发的 HPROF 快照。
请求跟踪
凭借请求跟踪的创新概念,JProfiler 使并行和多线程编程的分析变得更加容易。请求跟踪通过调用树视图中的超链接将调用站点与不同线程之间的执行站点连接起来。可以跟踪以下多线程系统:
来自java.util.concurrent包的执行程序
Kotlin 协程
AWT 事件
SWT 事件
线程开始
此外,如果两个 JVM 都在 JProfiler 中进行了分析和打开,则 JProfiler 可以跟踪跨 JVM 边界的调用。可以跟踪以下远程呼叫。
HTTP 请求
RMI 调用
网络服务调用
远程 EJB 调用
轻松创建自定义探针
JProfiler 提供自定义探针向导,允许您直接在 JProfiler GUI 中定义自定义探针。您的自定义探针由 JProfiler 部署到被分析的应用程序,您甚至不必在更改或添加自定义探针时重新启动被分析的应用程序。
JProfiler 中分析视图的高级概述:
JProfiler 的内存视图部分提供了动态更新的内存使用视图和显示分配点信息的视图。所有视图都有几个聚合级别,可以显示实时和垃圾收集对象
内存分析:JProfiler 的内存视图部分提供了动态更新的内存使用视图和显示分配点信息的视图。所有视图都有几个聚合级别,可以显示实时和垃圾收集对象
所有对象:显示堆上所有对象的类或包以及实例计数和大小信息。您可以标记当前值并显示差异。
记录对象:显示所有记录对象的类或包。您可以标记当前值并显示差异。
分配调用树:显示调用树或方法、类、包或 Java EE 组件,其中带有选定类的注释分配。
分配热点:显示分配选定类的方法、类、包或 Java EE 组件的列表。您可以标记当前值并显示差异。可以为每个热点显示回溯树。
班级跟踪器:显示带有所选类的实例计数图的时间线。
堆遍历器
在 JProfiler 的 heap walker 中,您可以拍摄堆快照并通过执行选择步骤深入到感兴趣的对象。heap walker 有五个视图:
班级:显示所有类及其实例。
分配:显示记录对象的分配树和分配热点。
最大的物体:显示阻止堆的最大部分被垃圾收集的对象。支配树可以就地展开以显示这些保留的对象。
参考:显示具有原始数据的单个对象的传出引用和具有“显示垃圾收集器根路径”功能的传入引用。还提供传入和传出引用的累积视图。在传出参考视图中,您可以应用过滤器。有两种不同的过滤器类型:按原始值过滤和用脚本过滤。
数据:显示单个对象的实例和类数据。
时间:显示记录对象的时间分辨直方图。
检查:在检查视图中,您可以对当前对象集运行许多检查,以各种方式分析您的对象。
图形:在图中,您可以添加来自不同对象集的对象,并通过打开传入和传出引用、查找选定对象之间的路径以及显示垃圾收集器根的路径来探索它们的关系。
CPU 分析
JProfiler 提供了多种方法来记录调用树以优化性能或细节。可以为所有视图选择线程或线程组以及线程状态。所有视图都可以在方法、类、包或 Java EE 组件级别上聚合。CPU 视图部分包含:
调用树
显示 JVM 中所有记录的调用序列的累积自顶向下树。JDBC、JMS 和 JNDI 服务调用被注释到调用树中。调用树可以针对不同的请求 URL 拆分到 servlet 或 JSP。您可以将方法标记为“异常方法运行记录”并单独查看最慢的调用。通过请求跟踪,您可以将调用站点连接到多线程应用程序中的执行站点。
热点:显示最耗时的方法列表。可以为每个热点显示回溯树。
调用图:显示从选定的方法、类、包或 Java EE 组件开始的调用序列图。
方法统计:显示有关所有方法调用时间分布的统计信息以及调用时间分布图,可用于发现异常值。
呼叫追踪器:显示按线程、包和类分组的方法调用的记录时间顺序跟踪。
线程分析对于线程分析,JProfiler 提供以下视图:
话题历史:显示带有线程活动和线程状态的时间线。
线程监视器:显示所有活动线程及其当前活动的列表。
线程转储:您可以获取多个线程转储并在线程转储视图中对其进行分析。
监控分析
对于监视器分析,JProfiler 提供以下视图:
当前锁定图:显示 JVM 中所有等待和阻塞情况的图表。
电流监视器:显示当前使用的监视器及其关联的线程。
锁定历史图:以图表形式显示记录的等待和阻塞情况的历史记录。
监控历史:显示记录的等待和阻塞事件的历史记录。
监控使用统计:显示按监视器、线程和监视器类别分组的监视器的统计信息。
虚拟机遥测
为了观察 JVM 的内部状态,JProfiler 提供了各种遥测视图:
堆:显示带有已用堆和堆大小图表的时间线。
记录对象:显示带有已记录的活动对象和数组的图表的时间线。
记录吞吐量:显示带有记录对象的对象创建和垃圾回收率图表的时间线。
GC活动:显示带有垃圾收集器活动图的时间线。
等级:显示带有加载类图的时间线。
线程:显示带有活动线程图的时间线。
CPU负载:显示时间线,其中包含分析的应用程序生成的 CPU 负载图。
数据库
JProfiler 支持以下数据库的特定探测:
JDBC
JPA/Hibernate
MongoDB
Cassandra
HBase
JEE 和探针
JProfiler 提供以下探针:
JDBC
JPA/框架
小服务程序
网易
HTTP 请求
网页服务
联合管理系统
JNDI
风险管理信息
文件
插座
流程
探针显示以下信息:
时间线:在时间线视图中,探针将其控制对象显示为沿时间轴的彩色条。控制对象是与单个探测事件关联的长期对象。例如,在 JDBC 探针中,控制对象是数据库连接。时间线条上的颜色对应控制对象可以处于的不同状态。
控制对象:有关控制对象的表格详细信息显示在控制对象视图中。它显示了有关控制对象的更多详细信息以及记录事件的统计信息,例如文件I/O的总吞吐量。使用过滤器控件和底部的总行,您可以对控件对象的子集进行快速求和。某些探针会在嵌套表中显示更多详细信息,您可以在其中打开一个对话框以更详细地显示有趣的多行值。例如,进程的命令行参数可能很长。
热点:在热点视图中,探针显示由按执行时间排序的探针事件发布的有效负载名称的热点。例如,文件探针显示文件名,JDBC探针显示SQL字符串,JNDI探针显示查询。每个热点都可以展开以显示对热点有贡献的回溯。
遥测:在遥测视图中,您可以看到探针发布的各种遥测。
活动:事件视图显示探针记录的单个事件。事件具有线程和堆栈跟踪信息,您可以轻松跳转到关联的控制对象。同样,过滤器和总行允许您对选定的事件求和。
希*
未评价,系统默认好评!
2021-11-23 12:48:00