Java内存监视神龙宝刀:VisualVM.
最近在实现一个Server,从CPU利用率来看,发现CPU占用率很高,于是乎找优化工具,终于发现神龙宝刀:VisualVM. 只要你用一次,你就会喜欢上它。
下载地址:https://visualvm.dev.java.net/eclipse-launcher.html
1. VisualVM 功能
VisualVM有很多令人眼前一亮的功能,它能使你:
◆监控应用程序的性能和内存占用情况
◆监控应用程序的线程
◆分析(Profile)应用程序性能和内存分配情况
◆进行线程转储(Thread Dump)或堆转储(Heap Dump)
◆分析核心转储(Core Dump)
◆保存快照以便脱机分析应用程序。
2.VisualVM安装
当使用最新的JDK时,它默认已经安装在你JDK环境的bin/下。当然如果你没有发现它,可以从这里下载:
https://visualvm.dev.java.net/download.html
下载完以后直接解压即可使用。
3. 集成到Eclipse中
当然,我们用Eclipse,这么好的工具怎么会没有Eclispse的插件那。同样,从这里下载Eclipse插件:https://visualvm.dev.java.net/download.html
安装即可。
安装完成后按照网站说明,配置Eclipse。
4. 使用
我们写了一个Server程序。看看VisualVM 能给我们提供什么帮助。
CPU使用率,堆栈大小,线程数量已经加载的Class,尽收眼底,是否很爽。
当然,它的威力远不止这些,我们看一下它的Profiler页功能:
可以Trace你代码的CPU开销,可以Trace你内存使用情况。如果有问题,立即可以察觉。
当然这个工具有一些Bug,比如第一次启动它这个Profiler是启动不了的,原来是需要在启动是加上参数:-Xshare:off,如下图