本文来说下JVisualVM工具的基本使用
文章目录
- 内存泄漏和内存溢出
- 分析工具
- JVisualVM工具使用
- 本文小结
内存泄漏和内存溢出
简单地说,内存泄漏(Memory leak)就是在内存中有很多对象没有被回收,一直占着内存;而内存溢出就是我们常说的 OOM 了。
内存泄漏最终可能会导致内存溢出,因此我们需要针对上面说的内存占用率超过90%的服务进行分析,找到问题才能解决问题,防止 OOM。
分析工具
首先准备好工具,这里我本着免费的原则,找了俩个,一个是 JDK 自带的 jvisualvm.exe,还有就是 MAT 了。
拿到 dump 文件后开始用工具分析,这里我比较推荐 MAT。个人使用起来觉得 jvisualvm 不如 MAT 好用,MAT 能快速给你定位到大对象,还有一些其他的功能,可以俩个一起用,先 jvisualvm(JDK 自带,不用额外下载),没有结果就用 MAT。
JVisualVM工具使用
JVisualVM本地启动(整体用法和JConsole差不多)
JVisualVM查看整体的情况
查看程序的线程状况
JVisualVM查看当前堆快照,并分析各类的实例所占内存比
本文小结
本文介绍了JVisualVM工具的一些基本使用