大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
开发大型Java项目时,我们难免会遇到内存泄漏、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。如果不作出处理,随着开发的进行,这些会是一个非常严重的隐患。今天介绍一下VisualVM的使用。(具体的检测数据分析在此不做过多阐述,只介绍工具的使用和基础分析) 我将从以下几个方面介绍该工具的使用:
[root@localhost ~]# cd /usr/java/jdk1.8.0_162/bin/
[root@localhost bin]# vim jstatd.all.policy
添加如下代码:
grant codebase "file:/usr/java/jdk1.8.0_162/lib/tools.jar" { permission java.security.AllPermission; };
注意
jstatd.all.policy 这个文件名可以自己命名,但是以.policy命名
/usr/java/jdk1.8.0_162/bin/ 和 /usr/java/jdk1.8.0_162/lib/tools.jar是我的java的路径,请替换成你们自己的路径
[root@localhost bin]#./jstatd -J-Djava.security.policy=jstatd.all.policy-J-Djava.rmi.server.hostname=192.168.134.128 -p 3333 -J-Djava.rmi.server.logCalls=true
注意
hostname=192.168.134.128 请替换成自己的服务IP地址
-p 3333 可以替换成自己设置的端口
下载地址:visualvm.github.io/
特别注意:
- 连接不上服务器时,请检查一下jstard 是否启动
- 连接不上服务器时,请检查防火墙是否屏蔽了该端口
我当前使用的VisualVM是1.4.1版本,所以这里使用的插件资源链接是:visualvm.github.io/uc/release1…
根据自己使用的版本自行添加:visualvm.github.io/pluginscent…
图片中我们看到的,Heap、Metaspace、Classes、Threads,分别是堆、元空间(jdk1.8之后)、类加载、线程