JProfiler 是一个功能强大的工具,您可以使用它以动态方式分析基于 Java 的应用程序,并使您能够分析它们以优化性能。当您配置文件时,您需要最强大的工具。同时,您不想花时间学习如何使用该工具。JProfiler 就是这样:既简单又强大。

Mac版详情:JProfiler 13 for Mac(Java开发分析工具) 

win版详情:JProfiler (Java性能分析工具)

 

 

 简单介绍

JProfiler  是一款功能强大的Java代码分析工具,JProfiler的直观UI可帮助您解决性能瓶颈,确定内存泄漏并了解线程问题且JProfiler配置会话非常简单,第三方集成使得入门变得轻而易举,并且以自然的方式呈现数据分析。

在所有级别上,JProfiler都经过精心设计,可帮助您开始解决问题。

功能介绍

JDBC,JPA和NOSQL的数据库分析

数据库调用是业务应用程序中性能问题的主要原因.JProfiler的JDBC和JPA / Hibernate探针以及MongoDB,Cassandra和HBase的NoSQL探测器显示了数据库访问速度慢的原因以及代码调用语句的速度.从JDBC时间轴视图向您显示所有JDBC连接及其活动,通过热点视图向您显示各种遥测视图的慢速语句和单个事件列表,数据库探测是深入了解数据库层的重要工具.

非常易于使用

在配置文件时,您需要最强大的工具.同时,您不想花时间学习如何使用该工具.JProfiler就是这样:简单而强大的同时.配置会话非常简单,第三方集成使得入门变得轻而易举,并且以自然的方式呈现数据分析.在所有级别上,JProfiler都经过精心设计,可帮助您开始解决问题.

对JAVA ENTERPRISE EDITION的出色支持

JProfiler的大多数视图中都存在对JEE的专用支持.例如,在JEE聚合级别中,您可以根据应用程序中的JEE组件查看调用树.此外,为每个请求URI分割调用树.此外,JProfiler在低级别性能分析数据之上添加了语义层,例如在CPU性能分析视图中显示的JDBC,JPA / Hibernate,JMS和JNDI调用.凭借其JEE支持,JProfiler弥补了代码分析器和高级JEE监视工具之间的差距.

更高级别的分析数据

JProfiler有许多探测器,可以显示来自JRE中有趣子系统的更高级别的数据.除了JDBC,JPA / Hibernate,JSP / Servlets,JMS,Web服务和JNDI等Java EE子系统之外,JProfiler还提供有关RMI调用,文件,套接字和进程的高级信息.这些探针中的每一个都有自己的一组有用的视图,可以为您提供一般的洞察力,突出性能问题,并允许您跟踪单个事件.而且,所有这些视图也可用于您自己的自定义探针,您可以在JProfiler中即时配置.内存泄漏的恒星分析

没有合适的工具,找不到内存泄漏是不可能的.JProfiler的堆walker为您提供了一个直观的界面来解决简单和复杂的内存问题.5个不同的视图和大量检查显示了当前对象集的不同方面.每个视图都为您提供有关所选对象的基本见解,并允许您切换到不同的对象集.只需单击鼠标即可回答诸如为什么对象不是垃圾回收的问题.

广泛的QA功能

JProfiler非常适合作为QA工具,无论是在开发期间还是在专门的QA团队中.快照比较的丰富功能可以轻松跟踪进度.JProfiler对命令行操作有很强的支持.这包括分析,导出快照数据和从命令行创建快照比较的功能.与JProfiler捆绑在一起的ant任务允许您从构建脚本执行所有命令行操作.

对平台,IDE和应用程序服务器的最广泛支持

JProfiler集成到您的环境中:我们为各种平台提供本机代理库 ,包括32位和64位JVM.集成到 所有流行的IDE中, 使开发过程中的分析与运行应用程序一样简单.市场上几乎所有应用服务器的大量集成向导确保您只需点击几下即可开始使用,而不是阅读文档.

低开销

JProfiler仅在您需要时记录数据.实际上,您可以使用JProfiler代理启动应用程序,并在以后附加JProfiler GUI.如果不记录任何数据,则开销非常小.这就是我们所说的需求分析.总是有一些你可以在高级探查器中调整的东西.JProfiler向您显示分析设置将如何影响性能,并为您提供模板以快速选择常见用例的分析设置.

功能强大的CPU分析器

修复性能瓶颈是分析器最常用的用例.但是,CPU数据的详细程度可能非常高,而且收集数据的方式可能会对可用性产生巨大影响.使用JProfiler,在尝试找出问题的原因时,您具有决定性的优势.调用树视图过滤器,聚合级别和线程状态选择器只是JProfiler在该领域的多功能性的一些示例.

集成的线程分析器

与线程相关的问题比人们想象的要频繁得多.没有线程分析器,您只有最小的机会来解决这些问题.使用JProfiler时可以解决一系列其他不透明的问题,例如在使用过多锁定的多线程应用程序中增加活跃度.线程分析不仅在JProfiler中有一个单独的视图部分,它还紧密集成到CPU分析视图中.

JProfiler  Mac版新增功能

已添加用于传出请求HTTP探测。同步和异步调用都是测量的。支持的HTTP客户端是:

java.net.URLConnection

Java HTTP客户端(Java 11+

Apache HttpClient 4.x

Apache Async HttpClient 4.x

OkHttp 3.9+

Jersey(JAX-RS)Async Client 2.x.

RestEasy Async Client 3.x

CXF Async Client 3.1.1+现在可以在JVM之间跟踪HTTP调用。在服务器端使用受支持的HTTP客户端和servlet容器时,呼叫站点和执行站点可以在两个方向上导航。可以内联异步执行。现在,为此目的,调用树视图和热点视图都具有“内联异步执行”调用树分析。如果异步跟踪处于活动状态,则调用树上方的状态显示可以轻松访问创建内联视图的操作。此外,拦截异步调用的调用树中的节点具有相应的超链接。

添加了对跟踪Kotlin协同程序的支持。 协同程序是以多平台方式与Kotlin进行异步编程的基础。在没有专用工具支持的情况下,涉及协同程序的调用树被高度分割,并且丢失了许多关于因果关系的信息。

JProfiler具有新的浅色和深色外观和感觉。外观和感觉基于 IntelliJ IDEA Darcula的外观和感觉以及它的轻微衍生。这些外观在WindowsLinux和macOS上支持HiDPI。在Windows和macOS上,JProfiler捆绑了“JetBrAIns Runtime”OpenJDK ,它具有比默认JDK更好的HiDPI支持。

一个用于jpcontroller非交互模式已被添加。jpcontroller是一个命令行可执行文件,用于控制记录和保存快照。除了现有的交互模式,您现在还可以自动执行分析会话,而无需手动输入。

对于自动调用,您传递[pid | host:port]选择一个配置文件的JVM以及 –non-interactive参数。从stdin或使用–command-file参数指定的命令文件中读取命令列表。

此非交互模式的命令与JProfiler MBean中的方法名称相同 。它们需要相同数量的参数,以空格分隔。此外, 还提供了sleep 命令。

例如,命令序列可能如下所示:

添加书签“Hello world”

startCPURecording true

睡10

stopCPURecording

saveSnapshot /path/to/snapshot.jps

自动检测IDE集成的调用树过滤器。对于新会话,IntelliJ IDEA,eclipse和NetBeans的IDE集成现在扫描配置项目的源包,并相应地设置包含过滤器。包含过滤器产生比默认独占过滤器更好的结果。如果具有可编辑源文件的所有包都具有公共前缀包,则将使用该包,否则将单独添加包含类的所有顶级包。

此检测仅在项目第一次分析时执行,并且调用树过滤器设置中的任何手动更改都不会丢失。在会话设置对话框的“定义过滤器”选项卡上,可以使用重置按钮强制重复此计算。

分配记录的采样大大降低了分配记录的高开销。默认情况下,记录每10个分配,与记录所有分配相比,大致将开销减少到1/10。

会话设置已得到改进。先前单独的“性能分析设置”对话框已集成到新的会话设置对话框中。

您现在可以轻松地将其他会话的选定部分复制到当前会话配置中。

浮动许可证现在通过SSH工作。拥有浮动许可证的客户现在可以使用与配置JVM的SSH连接相同的配置来配置与浮动许可证服务器的SSH连接。

添加了对跟踪Kotlin协同程序的支持。 协同程序是以多平台方式与Kotlin进行异步编程的基础。在没有专用工具支持的情况下,涉及协同程序的调用树被高度分割,并且丢失了许多关于因果关系的信息。

JProfiler具有新的浅色和深色外观和感觉。外观和感觉基于 IntelliJ IDEA Darcula的外观和感觉以及它的轻微衍生。这些外观在WindowsLinux和macOS上支持HiDPI。在Windows和macOS上,JProfiler捆绑了“JetBrAIns Runtime”OpenJDK ,它具有比默认JDK更好的HiDPI支持。