18
使用VisualVM监控应用GC
source link: https://www.boris1993.com/projects/java/coding-tips/monitor-gc-with-visual-vm.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
我们知道,使用VisualVM可以监控Java应用的各种运行时信息,包括资源占用、正在运行的线程等等。本文将简单介绍如何使用VisualVM的插件 Visual GC
来监控Java应用的垃圾回收情况。
安装 Visual GC
插件
因为 Visual GC
插件并不是随VisualVM附带的,需要到插件商店下载。
点击 Tools
–> Plugins
打开插件管理窗口,进入 Available Plugins
,在左侧窗格中勾选 Visual GC
,点击 Install
,同意许可协议后,稍等片刻即可完成安装。安装完成之后无需重启VisualVM。
监控垃圾回收
安装完成后,在VisualVM的 Applications
窗格中双击要监控的应用,然后在右侧窗格中进入 Visual GC
,即可以图形化的方式查看当前该应用中各个内存区域的情况。
窗格中的 Spaces
部分展示的是当前各个区域的占用情况; Graphs
部分则包括:
-
Compile Time
:编译时间,包括编译的次数,和累计的编译时间。图表中的一次脉冲就代表一次编译,脉冲越宽代表编译时间越长 -
Class Loader Time
:类加载时间,包括加载了多少个类(loaded
),卸载了多少个类(unloaded
),和累计用于类加载的时间 -
GC Time
:垃圾回收时间,包括垃圾回收的次数,垃圾回收消耗的时间,和上一次垃圾回收的原因 -
Eden Space
:Eden区的空间,括号中第一位是最大容量,第二位是当前容量,其后冒号跟着的是当前使用了的大小,再往后是发生垃圾回收的次数,和垃圾回收消耗的时间 -
Survivor 0
和Survivor 1
:两个Survivor
区的空间,同样包括最大容量、当前容量,和当前使用了的大小 -
Old Gen
:老年代的空间,同样包括最大容量、当前容量、当前使用了的大小、发生垃圾回收的次数,和垃圾回收消耗的时间 -
Metaspace
:Metaspace的空间(如果使用的是Java 1.7及之前版本,这里则是Perm Gen
),包括最大容量、当前容量,和当前使用了的大小
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK