JProfiler是一个用于检查和跟踪系统(限于Java开发的)性能的工具。JProfiler通过实时监控系统的内存使用情况、监视垃圾回收、线程运行状况等手段从而监视JVM运行情况及其性能。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可视化的GUI可让你快速找到效能瓶颈、抓出内存漏失(memoryleaks)、并解决执行绪等问题。

功能特点
卓越的易用性Profiler简单而强大,同时它的配置会话是直接的,第三方集成使得开始轻松,分析数据以自然的方式呈现。在各个层次上,JProfiler经过精心设计,可以帮助您开始解决问题。
JDBC、JPA和NOSQL的数据库分析JProfiler的JDBC和JPA/Hibernate探测器以及MongoDB,Cassandra和HBase的NoSQL探测器显示了数据库访问缓慢以及代码缓慢的语句调用原因。从JDBC时间线视图显示所有与其活动的JDBC连接,通过热点视图,显示各种遥测视图的慢速语句和单个事件列表,数据库探针是深入了解数据库层的重要工具。
极好的支持JAVA企业版在JProfiler中的大多数视图中存在JEE的专用支持。例如,在JEE聚合级别中,您可以根据应用程序中的JEE组件看到调用树。另外,每个请求URI都会分配调用树。此外,JProfiler在低级别分析数据之上添加了语义层,如在CPU分析视图中呈现的JDBC,JPA/Hibernate,JMS和JNDI调用。凭借其JEE支持,JProfiler弥合了代码分析器和高级JEE监视工具之间的差距。
更高级别的分析数据JProfiler有许多探针可以显示JRE中有趣子系统的更高级别的数据。除了JavaEE子系统,如JDBC,JPA/Hibernate,JSP/Servlets,JMS,Web服务和JNDI之外,JProfiler还提供了有关RMI调用,文件,套接字和进程的高级信息。这些探针中的每一个都有自己的一组有用的视图。所有这些视图也可用于您可以在JProfiler中即时配置的自定义探针。
内存泄漏分析JProfiler的堆步行器为您提供了一个直观的界面来解决简单和复杂的内存问题。5个不同的视图和大量的检查显示当前对象集的不同方面。每个视图都提供对所选对象的基本见解,并允许您切换到不同的对象集。
广泛的质量保证能力快照的丰富功能可以轻松跟踪进度。JProfiler对命令行操作有很强的支持。这包括配置,导出快照数据和从命令行创建快照比较的功能。与JProfiler绑定的ant任务允许您从构建脚本执行所有命令行操作。
最广泛的支持平台,IDE和应用服务器集成到所有流行的IDE中,使开发过程中的分析与运行应用程序一样简单。并且市场上几乎所有应用服务器的大量集成向导确保您可以开始点击几次,而不是阅读文档。
低开销JProfiler只在需要时记录数据。实际上,您可以使用JProfiler代理启动应用程序,并在以后连接JProfilerGUI。当您不记录任何数据时,开销非常小。JProfiler显示您的性能分析设置如何影响性能,并为您提供模板以快速选择常见用例的性能分析设置。
强大的CPU分析器修复性能瓶颈是分析器最常用的用例。使用JProfiler,当您尝试找到问题的原因时,您将具有决定性的优势。调用树视图过滤器,聚合级别和线程状态选择器只是JProfiler在此领域的多功能性的一些示例。
集成螺纹轮廓仪使用JProfiler可以解决一系列不透明的问题,例如在使用过多锁定的多线程应用程序中增加活动性。线程分析不仅在JProfiler中有一个单独的视图部分,它也被紧密地集成到CPU分析视图中。
Jprofiler使用说明
1、在windows下运行Jprofiler
2、新建连接

3、选择
apache-tomcat版本

4、选择远程系统类型

5、选择远程系统上所运行的java版本

6、选择第二项,先不启动连接

7、输入远程主机的IP

8、输入远程主机上Jprofiler的安装路径

9、把远程主机tomcat/bin目录下的start.sh下载到本地,并上传到Jprofiler,如下图所示

10、选择配置端口
11、检查更改的信息

12、设置为待会启动

13、返回 下载的start.sh的相应目录会查看到有一个文件名为:start_jprofiler.sh的文件
把start_jprofiler.sh文件上传到tomcat/bin目录下,并授予可执行权限
14、查看下远程主机是否已经启动了tomcat的进程,如果有需先杀死:killall java
15、重启tomcat
[root@zhoucentos bin]# ./startup_jprofiler.sh & tail -f ../logs/catalina.out
16、window下连接远程主机

JProfiler支持以下工作模式:
本地会话的现场分析一旦你定义了应用程序如何启动,JProfiler就可以分析它,您可以立即看到JVM实时数据。为了消除会话配置的需要,您可以使用一个多IDE插件,并从你喜欢的IDE中分析的应用程序。
远程会话活动的分析通过修改Java启动命令的虚拟参数就可以得到任何Java应用程序侦听来自JProfiler GUI的连接。该应用程序不仅可以在本地计算机上运行,JProfiler还可以连接到在网络上配置的应用程序。此外,提供的JProfiler众多集成的向导为所有流行的应用服务器,以帮助您在分析设置你的应用程序。
离线分析和触发器有了离线分析,您可以使用JProfiler的强大的触发器系统或JProfiler的API控制剖析代理和快照保存到磁盘。在稍后的时间,你可以打开JProfiler的GUI,分析这些快照。
快照比较你可以保存当前所有分析数据到磁盘的快照。JProfiler提供了丰富的比较设备,看看两个或多个快照之间不同之处。另外,您可以编程方式创建比较报告使用命令行比较工具还是比较ant任务。
查看一个HPROF快照JProfiler可以打开HPROF已采取与JVM工具如JConsole的或JMAP或已经由-XX触发快照+HeapDumpOnOutOfMemoryErrorJVM参数。
请求跟踪随着请求跟踪的创新理念,使的JProfiler并行和多线程编程更容易的分析。请求跟踪连接与调用树视图的超链接不同的线程之间执行站点调用点。
轻松创建定制探头JProfiler提供的自定义探测向导,使您可以直接在JProfiler的GUI定义自定义探头。您的自定义探针部署到JProfiler配置的应用程序,你甚至不必更改或添加自定义探头时重新启动该应用程序。

更新日志
jprofiler v10.0更新日志
新功能通过SSH进行零配置远程连接和HPROF堆转储
复杂性分析视图,用于分析所选方法的Big-O行为
固定,关闭和重新计算呼叫树分析
调用树形图的调用树分析
显示收集呼叫树分析数据的时间
在活动记忆部分中的“显示类”调用树分析
在具有可选instanceof行为的heapwalker的引用视图中添加了一个类型过滤器选项
“在出站引用视图”中显示空值的字段现在也适用于静态字段
heapwalker的传出引用视图中的toString()过滤器现在也支持用于快照的java.lang.Class对象
会话启动对话框中的“JVM退出操作”,用于在JVM退出时保存并立即打开快照
远程集成向导现在支持SSH连接
添加了通过SSH同步配置文件的选项
支持CassandraDataStax驱动3.1
支持mongoDB3.4
支持Axis21.7和CXF3.1
修正错误如果通过记录配置文件启动监视录像,则不使用监视录像的屏蔽和等待阈值
呼叫树比较:记录的探测器的跳转节点显示在树中
加载快照时,无法在启动中心修改其他会话
在非Windows平台上固定Java9的进程探测器
探测器控制对象视图:显示日历时间为缺少的结束时间
Windows下的警报对话框在AlloyL&F下没有消除锯齿
不要将命令行导出中使用的快照添加到最近的快照列表
在“当前显示器”和“监视历史”视图中“显示选择在堆沃克”操作无效
MBean浏览器中的地图属性未排序
修复了遥测工具提示中的大小顺序问题
应用新的配置文件设置对于ssh连接不起作用