启动JVisualVM之后,左侧列出本地全部java进程。右侧是详细信息。
显示概要信息,jinfo功能一样。生成hprof文件在“基本信息”第二行。
显示线程信息,和jstack功能一样。
类加载信息,和Mat的功能
选择文件,指定文件格式。
选择要查看的内存对象,双击对象进入详细信息。
查看对象层级引用。
监控本地进程的线程,对理解框架非常有帮助,可以看到都有哪些进程,以及这些进程的工作状态。dump进程状态和jstack的结果一样,也可以分析出线程死锁。
显示页面中,动态查看s0,s1,GC情况。
Visual GC是可选插件,在菜单栏工具->插件标签页,打开插件管理工具。
修改Catalina.sh,添加参数。
JAVA_OPTS="-Djava.rmi.server.hostname=192.168.1.30 -Dcom.sun.management.jmxremote.port=8099 -Dcom.sun.management.jm xremote.rmi.port=8099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
新建远程连接,再创建jmx连接。两种类型监控消息,jmx和jstatd。jmx不支持VisualGC,jstatd不支持CPU。
visualvm中文参考指南 https://visualvm.github.io/documentation.html