在人生的道路上,当你的希望一个个落空的时候,你也要坚定,要沉着。 —— 朗费罗
1. JConsole工具
JConsole工具是JDK自带的图形化性能监控工具(在%JAVA_HOME%/bin目录下)。通过JConsole工具,可以查看JAVA程序的运行情况,监控堆信息、线程信息、检测线程死锁等情况。
在连接上JAVA程序后,便可以查看程序的运行概况。以下图中分别显示了JAVA程序的概况、堆内存的使用情况、线程数量、加载类的数量。
JAVA程序已加载类的信息使用"检测死锁",还可以自动检测到多线程应用程序的线程死锁情况。
2. Visual VM工具
Visual VM是一个故障诊断和性能监控的可视化工具,集成了多种性能统计工具的功能。
2.1 监控程序概况
通过Visual VM,可查看应用程序的基本情况。
Visual VM显示程序概况
监控Tab页,可监控程序CPU、堆、MetaSpace(JDK1.8)、永久区(JDK1.7及以下)、类加载和线程数的总体情况。另还可以手工执行Full GC和生成堆快照。
Visual VM显示监控信息生成的堆快照信息如下:
Visual VM显示堆快照概况 Visual VM显示堆快照的类概况2.2 Thread Dump
Visual VM的Thread页面提供了详细的线程信息。点击Thread Dump按钮可以导出当前所有线程的栈信息。
Visual VM线程查看Visual VM线程Dump如果Visual VM在当前程序中找到死锁,则会在Thread页面进行提示。
2.3 性能分析
Visual VM有两个采样器,在采样器页面下,显示了CPU和内存两个性能采样器,用于实时地监控程序信息。CPU采样器可以将CPU占用时间定位到线程和方法,内存采样器可以查看当前程序的堆信息。
Visual VM监控线程占用CPU时间通过CPU的采样功能,可以找到该程序中占用CPU时间最长的线程。
Visual VM监控线程占用内存概况通过内存的采样功能,可以找到该程序中占用内存最多的线程。
网友评论