visualvm 插件 visual gc 使用介绍
visual gc 是 visualvm 中的图形化查看 gc 状况的插件。
具体详细介绍可参照: http://www.oracle.com/technetwork/java/visualgc-136680.html
本文也是在此基础上进行的整理归纳。

OUTPUT FORMAT
visual gc 工具分成三大块
- the Visual GC window
- the Graph window,
- the Survivor Age Histogram window(可选的)
- 作者 对 eclipse 监控,这个选项是不可用的,需要调查原因
Visual GC Window
我们看到上方图片中的 Spaces 就是 Visual GC window 了。它会分成 3 个竖直的部分,分别是 Perm 永生代, Old 老年代和新生代。
新生代又分成 3 个部分 Eden 区, S0 survivor 区, S1 survivor 区.
每个方框中都使用不同的颜色表示,其中有颜色的区域是占用的空间,空白的部分是指剩余的空间。
当程序正在运行时,该部分区域就会动态显示,以直观的形式显示各个分区的动态情况。

Graph Window
该区域包含多个以时间为横坐标的状态面板。
Compile Time

编译时间表示虚拟机的 JIT 编译器编译热点代码的耗时。
Java 语言为了实现跨平台特性, Java 代码编译出来后形成的 class 文件中存储的是 byte code,jvm 通过解释的方式形成字节码命令,这种方式与 C/C++ 编译成二进制的方式 相比要慢不少。
为了解决程序解释执行的速度问题, jvm 中内置了两个运行时编译器,如果一段 Java 代码被调用达到一定次数,就会判定这段代码为热点代码(hot spot code),并将这段代 码交给 JIT 编译器编译成本地代码,从而提高运行速度。所以随着代码被编译的越来越彻底,运行速度应当是越来越快。
而 Java 运行器编译的最大缺点就是它进行编译时需要消耗程序正常的运行时间,也就是 compile time.
Class Loader Time
表示 class 的 load 和 unload 时间
GC Time

- 22 collections 表示自监视以来一共经历了 22 次GC, 包括 Minor GC 和 Full GC
- 2.030s 表示 gc 共花费了 2.030s
- Last Cause: Allocation Failure 表示上次发生 gc 的原因: 内存分配失败
Eden Space
- Eden Space (340.500M,185.000M): 91.012M
- 表示 Eden Space 最大可分配空间 340.500M
- Eden Space 当前分配空间 185.000M
- Eden Space 当前占用空间 91.012M
- 21 collections, 1.012s
- 表示当前新生代发生 GC 的次数为 21 次, 共占用时间 1.012s
Survivor 0 and Survivor 1
- S0 和 S1 肯定有一个是空闲的,这样才能方便执行 minor GC 的操作,但是两者的最大分配空间是相同的。并且在 minor GC 时,会发生 S0 和S1 之间的切换。
- Survivor 1 (113.500M, 75.000M) : 36.590M
- 表示 S1 最大分配空间 113.500M, 当前分配空间 75.000M, 已占用空间 36.590M
Old Gen

Old Gen (682.500M, 506.500M) : 233.038M, 1 collections, 1.018s
-
(682.500M, 506.500M) : 233.038M
表示 OldGen 最大分配空间 682.500M, 当前空间 506.500M, 已占用空间 233.038M
次 GC, 耗费了 1.018s 的时间。
老年代 GC 也叫做 Full GC, 因为在老年代 GC 时总是会伴随着 Minor GC, 合起来就称为 Full GC。
Perm Gen

Perm Gen (256.000M, 227.500M) : 122.800M
256.000M 表示最大可用空间,可以使用 -XX:MaxPermSize 指定永久代最大上限
227.500M 表示当前永久代空间
122.800M 表示永久代当前占用空间
对 HotSpot 虚拟机来说,可以把永久代直接等同于方法区,其中会存储已经被jvm 加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。
visualvm 插件 visual gc 使用介绍的更多相关文章
- Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器
VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收 ...
- Java VisualVM添加Visual GC插件
1.访问地址:https://visualvm.github.io/pluginscenters.html,找到自己JDK版本对应的插件下载地址(我的JDK版本为1.7.0_67): 2.点击该链接进 ...
- 【转】JVM可视化工具插件---Visual GC
Visual GC是一个Java 内存使用分析与GC收集的可视化工具插件 <插件下载> 一:整个区域分为三部分:spaces.graphs.histogram 1 spaces区域:代表虚 ...
- jvm可视化工具jvisualvm插件——Visual GC
转自:http://blog.csdn.net/xuelinmei_happy/article/details/51090115 Visual GC是一个Java 内存使用分析与GC收集的可视化工具插 ...
- Visual GC(监控垃圾回收器)
Java VisualVM默认没有安装Visual GC插件,需要手动安装,JDK的安装目录的bin目露下双击jvisualvm.exe,即可打开Java VisualVM,点击菜单栏 工具-> ...
- 3 - JVM随笔分类(gc.log ,VisualVM插件介绍,VisualVM远程连接方式介绍)
gc.log 354.2 KB 对于对应用的监控上可以使用Jdk自带的VisualVM来做可视化监控,可以查看当前服务应用进程的堆大小的走向,以及类的加载数量等,除此之外,VisualVM可以支持很多 ...
- 为JDK自带的jvisualvm安装Visual GC插件
1.打开cmd,输入jvisualvm,回车: 2.点击工具——>插件; 3.访问网址:https://visualvm.github.io/pluginscenters.html,找到自己JD ...
- jvisualvm安装Visual GC插件
jdk自带了查看和分析jvm的一系列工具,在%JAVA_HOME%/bin目录下,包括jvisualvm.jconsole.jmap.jstack.jstat等: 其中jvisualvm.exe提供一 ...
- Visual GC提示"不受此JVM支持“解决方案(配置jstatd)
Visual GC提示"不受此JVM支持“,如果想使用这个插件,就需要配置jstatd连接方式,下面来看jstatd的配置: 1.配置安全策略文件路径$JAVA_HOME/jre/lib/s ...
随机推荐
- PHP中运算符优先级
运算符优先级指定了两个表达式绑定得有多“紧密”.例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高.必要时可以用括号来强制改变优先级.例如: ...
- GCD 使用若干注意事项
这篇文章写的是看完 WWDC 17 - Modernizing GCD Usage 之后的笔记. 一.Parallelism & Concurrency Parallelism 指的是在多个 ...
- 聊聊Postgres中的IPC之SI Message Queue
在 PostgreSQL中,每一个进程都有属于自己的共享缓存(shared cache).例如,同一个系统表在不同的进程中都有对应的Cache来缓存它的元组(对于RelCache来说缓存的是一个Rel ...
- 关于在JS中AJAX导致跨域问题的解决
在部署一个原声的前端项目的时候,请求该服务器后端接口时发现出现了CORS跨域的问题,但是服务端已经做了同源策略的兼容,常见问题,遂记录. 报错信息: XMLHttpRequest cannot loa ...
- Haskell优雅的快排实现
说得快速排序,基本是常用的排序当中速度最快的排序了,之前也用C和Java实现过,但是过程十分痛苦,更重要的是写完代码只记得过程却对实质的过程觉得隔了一层纱,有种说不出的感觉.刚刚看一下Haskell实 ...
- 使用go写一个简单的exe文件
工作需要一个小工具给分析师用,原先打算写一个脚本的,但是呢我又不会用python,要写的话只能用java来实现(打包成可执行jar,使用java -jar 的命令来执行,当然得安装jdk).这种命令行 ...
- 2018青岛网络赛G - Couleur 区间上的启发式合并
题意:给出\(a[1...n]\),共\(n\)次操作,每次删除一个位置\(p_i\)(强制在线),此时区间会变为两个分离的区间,求每次操作的最大区间逆序对 首先要知道必要的工具,按权值建立的主席树可 ...
- FreeRTOS-07内核控制函数
根据正点原子FreeRTOS视频整理 单片机:STM32F207VC FreeRTOS源码版本:v10.0.1 内核控制函数:
- Java并发编程——阻塞队列BlockingQueue
Java 并发编程系列文章 Java 并发基础——线程安全性 Java 并发编程——Callable+Future+FutureTask java 并发编程——Thread 源码重新学习 java并发 ...
- jQuery $(document).ready()和JavaScript window.onload()事件的区别
一. 在网上查了一下,发现$(document).ready()是在DOM树加载完成时触发,而window.onload()则是在整个页面全部加载完成时触发.下面是一些验证. var start=+n ...