概述
工欲善其事必先利其器,在Java开源世界里面,有无以计数的工具。
清单
排名靠前的使用得多一些。
MAT
Eclipse Memory Analyzer,Eclipse内存分析器是一个可以帮助你找到内存泄漏和减少内存损耗的Java堆分析器。它更适合作为一个分析Java堆栈和计算大小的工具集,也可以用于监测内存泄漏和反模式带来的内存损耗。
MAT使用笔记待更新。
GC Viewer
开源工具,可以对vmflags -verboase:gc
和-Xloggc:
等Java VM选项产生的数据进行可视化分析。GC Viewer可以用于计算GC(垃圾回收)相关的性能数据记录,包括吞吐、累积暂停、最长时间的暂停等。当你想要通过改变生成大小和设置初始堆大小来调整某个特定应用的GC时,它尤其有用。
VisualVM
遵循模块化的架构思想。这意味着可以通过插件方便的进行扩展。允许你获取Java程序的详细信息,只要它在一个JVM上运行即可。生成的数据可以由JDK工具生成和读取,多个Java程序的所有数据和信息都可以很方便地进行查看,包括本地和远程的运行程序。同时可以保存JVM软件的数据快照,把数据保存在本地,方便以后进行查看或者和其他人一起分享。可以进行CPU性能分析、内存性能分析,进行GC(可以进行强制调用GC)、保存快照、类和方法消耗资源等。
参考jVisualVm监控实战
maintainJ
JProfiler
一个很好的Java性能分析工具。JProfiler集CPU、内存和线程性能分析于一体,可以用于分析性能瓶颈、内存泄漏、CPU 负载和解决线程相关的问题,并且支持本地性能分析(分析与JProfiler软件安装在同一台机的应用)和远程性能分析(它可以分析远程没有安装 JProfiler机器上的应用)
YourKit
安装时有一个选项,可以安装一个插件到我的IDE。安装后,运行应用程序,使用该插件,它会自动连接到YourKit。它有一个漂亮的用户界面可以查看到内存和CPU的监测,同时也可以看到请求的执行路径。
JProbe
安装并不是直接完成,需要对它进行配置。它采用类似JProfiler一样的设置。它会在你的Tomcat目录中生成启动脚本。可以通过脚本启动服务器并监听会话。它的界面包含有按钮和表格,其中可以看到内存的使用,但无法在进程中找到执行路径。
Spring Insight
听到TC Server有Spring Insight监控界面,安装完成后,并设置成TC Server的开发者版,然后部署应用程序在TC Server上。我查看Insight界面,它可以很好的监视类和方法,并能看到完成这个方法用了多少时间。我还能看到输入参数值,以及返回值。由于我的应用程序是基于Spring的,Spring Insight能够提供非常有用的数据。TC Server插件在IDE上的配置与Tomcat的配置类似。Spring Source工具套件就自带Spring Insight。
Profiler4J
一个专注于CPU性能分析的工具,友好的用户界面,支持远程性能分析,及动态修改配置。Profiler4j值得关注的特性有:基于动态字节码增强方式,表明它不需要任何本地的库和外部可执行文件支持。它完全由Java编写,可提供图形化的调用图形信息、调用树结构、内存监控和类列表,支持细粒度配置文件。
Java Interactive Profiler
JIP,一个用Java开发的高性能、低损耗性能分析器。使用JIP的开发者可以在VM运行时开启和关闭性能分析,并且可以过滤类和包、控制输出。