近期个人想要了解一下jvm,但由于网上大部分的讲解都过于抽象,对于没有实际操作过的我来说有点难以理解,即使理解也仅仅是数据参数上有个大体概念,真正想要去理解还是需要实际操作,于是在网上查找了关于jvm可视化工具的内容,觉的受益匪浅,在此记录一下。
我了解的是jdk自带的可视化工具Visual,只要有jdk,就会有这个工具,使用起来很方便。
具体位置在jdk-bin-jvisualvm.exe
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a1d116d2cc5d0a7cb2d9cdd7a979ea2a.png)
打开页面如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/981b645cf1f7b2b3385b109eb9b86102.png)
这里可以选择本地的运行程序,还是远程的程序,这里我只了解了查看本地程序信息
1概述:里面有一些关于jvm的基本信息
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/00dfb88810a470a1a9abd2a17a9a5c6e.png)
2监视:这里面是关于CPU、内存、类、线程的运行信息(这里也可以进行手动GC)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8428caf7a7cc2804173b27e6eb4bd331.png)
3线程:不用多说,是关于线程的信息,各种信息一目了然
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8016ad8ccc2254693c56aede4d767111.png)
4抽样器:可以对一定时间内的cpu或内存的数据进行详细查看(方法的运行时间,线程的cpu时间)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/25614078d99454f887938c7654980d76.png)
5 Visual GC:这是理解jvm最重要的一个页面,里面有关于年轻代、老年代、持久代的详细数据显示,甚至年轻代里的Eden、s0、s1区都显示出来了,GC的次数、时间都有,很详细。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2c32477593a38634fa6af6d76e81d710.png)
6 应用程序里还有个快照的功能,是可以将此时的程序数据都记录下来,如果数据调整后,方便对下次程序数据进行比较。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/74fa459dd003e6752d43dc67250f1dbf.png)
有了这个,就可以更方便、直观的去进行jvm调优的操作了。