最近正在学习JvisualVm的使用,写一篇博客记录一下。
一 工具准备
1 软件
已经安装JDK及IDEA。
2 插件
2.1 Idea插件
在idea中按住快捷键 shift + command + A,输入plugins,搜索visualvm,如下图所示,安装插件。
安装完该插件,在idea的工具栏中会多出两项,分别对应“Run with VisualVm”和“Debug With VisualVM”,使用它们进行调试,就可以自动唤起visualvm,进行程序的实时监控了。
2.2 visualVM插件
visualvm中有很多实用的插件,这也是其功能强大的原因之一。目前,只安装了三个插件:“Visual GC”(分析内存情况)、“BTrace”(类似Arthas,可以在程序运行时添加功能)和 “Jconsole”。
二 使用示例
idea配置的虚拟机参数如下:
# custom IntelliJ IDEA VM options
-Xms256m
-Xmx256m
-XX:ReservedCodeCacheSize=512m
-XX:+UseCompressedOops
-Dfile.encoding=UTF-8
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Xverify:none
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
-XX:MaxMetaspaceSize=1024m
-javaagent:/Library/JetbrainsLicense/jetbrains-agent.jar
2.1 分析内存
2.1.1 实时分析
1 正常GC
示例代码
2 大对象
3
2.1.2 dump文件分析
2.2 分析线程
2.2.1 实时分析
2.2.2 dump文件分析
参考资料
[1] 《深入理解Java虚拟机》