###Java垃圾回收的监控和分析工具
下面是几个可用的工具。每一个可用的工具都有自己的优点和不足。使用恰当的工具,以正确的方式开展分析,可以帮助我们提高应用的性能。在本文,我们主要使用Java VisualVM。
|
|
Java VisualVM在Java SE SDK安装之后,它就可以,它是和Java SE JDK一起免费安装。你可以看一下Java JDK安装目录下的bin文件夹。路径一般是\Java\jdk1.8.0\bin。除java和javac之外,这里还有很多其他的可用工具。jvisualvm就是其中之一。
Java VisualVM使用图形用户界面将Java应用运行时的信息展示处理。它还集成了很多很多工具,例如JConsole、jstat、jinfo、jstack和jmap都是Java VisualVM中的一部分了。
Java VisualVM可用于:
- 打开VisualVM
jvisualvm可以在JDK的bin目录下找到。
- 安装Visual GC插件
我们需要安装一个Visual GC插件,这样可以更直观地查看Java垃圾回收过程。
- 监控垃圾回收
现在到了监控垃圾回收过程的时候了。启动你的Java引用,它将自动被检测和被展示在Java VisualVM的界面上。在左侧的“Application”测看下,有个“Local”节点,所有本地正在运行的Java应用都将罗列在这里。
Java VisualVM是一个Java应用。所以,它将自己也列在这里。为了方便学习,我们将监控Java VisualVM自身的垃圾回收过程。
双击“Local”节点下的VisualVM图标。
现在,应用监视窗口在右侧打开。这里有很多不通的标签页(Tap)用于显示应用性能相关的每一方面。现在,我们关注的是“Visual GC”,点击它。
上面这张图展示了Old、Eden、S0和S1的内存使用情况。下面这张图,每段显示了内存分配与回收的详细情况。它以一个设定的时间间隔保持不断刷新。
上面这张图展示了正常的垃圾回收的过程。当存在内存泄露或者任何异常行为时,从这张图上就可以很明显地看出来。至少,我们可以了解到这里有关于对象内存分配与垃圾回收的展示。再配合其他的标签页,例如“Threads”以及线程转储你,我们就可以深入详细地了解这方面的内容。
在“Monitor”标签页,我们可以监控整个堆内存的使用情况。点击“Perform GC”来启动垃圾回收过程。
在“Sampler”标签页,我们可以启动内存和CPU分析。它将展示每一个实例的生存状态。它用于帮助我们定位性能问题。