转自:http://blog.csdn.net/xuelinmei_happy/article/details/51090115

Visual GC是一个Java
内存使用分析与GC收集的可视化工具插件

一:整个区域分为三部分:spaces、graphs、histogram

1,spaces区域:代表虚拟机内存分布情况。从图中可以看出,虚拟机被分为Perm、Old、Eden、S0、S1

注意:如果对每个区域基本概念不是很熟悉的可以先了解下java虚拟机运行时数据区这篇文字。

1.1)perm:英文叫做Permanent
Generation,我们称之为永久代。(根据深入。

1.1.1)通过VM
Args:-XX:PermSize=128m -XX:MaxPermSize=256m 设置初始值与最大值

1.2)heap:java堆(Java
heap)。它包括老年代(图中Old区域)和新生代(图中Eden/S0/S1三个统称新生代,分为Eden区和两个Survivor区域),他们默认是8:1分配内存

1.2.1)通过VM
Args:-xms512m -Xmx512m -XX:+HeapDumpOnOutofMemoryError -Xmn100m
-XX:SurvivorRatio=8
设置初始堆内存、最大堆内存、内存异常打印dump、新生代内存、新生代内存分配比例(8:1:1),因为Heap分为新生代跟老年代,所以512M-100M=412M,老年代就是412M(初始内存跟最大内存最好相等,防止内存不够时扩充内存或者Full
GC,导致性能降低)

2,Graphs区域:内存使用详细介绍

2.1)Compile
Time(编译时间):6368compiles
表示编译总数,4.407s表示编译累计时间。一个脉冲表示一次JIT编译,窄脉冲表示持续时间短,宽脉冲表示持续时间长。

2.2)Class Loader Time(类加载时间):
20869loaded表示加载类数量, 139
unloaded表示卸载的类数量,40.630s表示类加载花费的时间

2.3)GC Time(GC
Time):2392collections表示垃圾收集的总次数,37.454s表示垃圾收集花费的时间,last
cause表示最近垃圾收集的原因

2.4)Eden Space(Eden
区):括号内的31.500M表示最大容量,9.750M表示当前容量,后面的4.362M表示当前使用情况,2313collections表示垃圾收集次数,8.458s表示垃圾收集花费时间

2.5)Survivor 0/Survivor
1(S0和S1区):括号内的3.938M表示最大容量,1.188M表示当前容量,之后的值是当前使用情况

2.6)Old
Gen(老年代):括号内的472.625M表示最大容量,145.031M表示当前容量,之后的87.031表示当前使用情况,79collections表示垃圾收集次数
,28.996s表示垃圾收集花费时间

2.7)Perm
Gen(永久代):括号内的256.000M表示最大容量,105.250M表示当前容量,之后的105.032M表示当前使用情况

3,Histogram区域:survivor区域参数跟年龄柱状图

3.1)Tenuring
Threshold:表示新生代年龄大于当前值则进入老年代

3.2)Max Tenuring
Threshold:表示新生代最大年龄值。

3.3)Tenuring Threshold与Max Tenuring Threshold区别:Max Tenuring
Threshold是一个最大限定,所有的新生代年龄都不能超过当前值,而Tenuring Threshold是个动态计算出来的临时值,一般情况与Max Tenuring
Threshold相等,如果在Suivivor空间中,相同年龄所有对象大小的总和大于Survivor空间的一半,则年龄大于或者等于该年龄的对象就都可以直接进入老年代(如果计算出来年龄段是5,则Tenuring
Threshold=5,age>=5的Suivivor对象都符合要求),它才是新生代是否进入老年代判断的依据。

3.4)Desired Survivor
Size:Survivor空间大小验证阙值(默认是survivor空间的一半),用于Tenuring
Threshold判断对象是否提前进入老年代。

3.5)Current Survivor
Size:当前survivor空间大小

3.6)histogram柱状图:表示年龄段对象的存储柱状图

3.7)如果显示指定-XX:+UseParallelGC
--新生代并行、老年代串行收集器
,则histogram柱状图不支持当前收集器

引用:

http://www.Oracle.com/technetwork/java/visualgc-136680.html

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

《Java性能优化权威指南》

jvm可视化工具jvisualvm插件——Visual GC的更多相关文章

  1. 【转】JVM可视化工具插件---Visual GC

    Visual GC是一个Java 内存使用分析与GC收集的可视化工具插件 <插件下载> 一:整个区域分为三部分:spaces.graphs.histogram 1 spaces区域:代表虚 ...

  2. jvisualvm安装Visual GC插件

    jdk自带了查看和分析jvm的一系列工具,在%JAVA_HOME%/bin目录下,包括jvisualvm.jconsole.jmap.jstack.jstat等: 其中jvisualvm.exe提供一 ...

  3. 为JDK自带的jvisualvm安装Visual GC插件

    1.打开cmd,输入jvisualvm,回车: 2.点击工具——>插件; 3.访问网址:https://visualvm.github.io/pluginscenters.html,找到自己JD ...

  4. visualvm 插件 visual gc 使用介绍

    visual gc 是 visualvm 中的图形化查看 gc 状况的插件. 具体详细介绍可参照: http://www.oracle.com/technetwork/java/visualgc-13 ...

  5. node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)

    第七章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  6. jvisualvm 连接 jstatd 远程监控 jvm 或 Visual GC提示"不受此JVM支持“

    Visual GC提示"不受此JVM支持",可以使用此方法解决. 一.添加配置文件 jstatd.all.policy [root@localhost /]# cd /usr/lo ...

  7. Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器

    VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收 ...

  8. JVM 第四篇:可视化 JVM 故障处理工具

    本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 可视化工具 在 JDK 中为我们提供了大量的 JVM 故障处理工具,都在 JDK 的 bin 目录下: 这其中除了大量的命令行工具以外,还 ...

  9. Visual GC提示"不受此JVM支持“解决方案(配置jstatd)

    Visual GC提示"不受此JVM支持“,如果想使用这个插件,就需要配置jstatd连接方式,下面来看jstatd的配置: 1.配置安全策略文件路径$JAVA_HOME/jre/lib/s ...

随机推荐

  1. Delphi7 企业版安装记录

    Borland Delphi Enterprise Version 7.0[Build 4.453] 云盘下载: 链接:http://pan.baidu.com/s/1gff6Fuz     密码:z ...

  2. ELKB是什么?

    ELKB是四个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana ,Beats. Elasticsearch是个开源分布式搜索引擎,提供搜集.分析.存储数据三大 ...

  3. 前端JavaScript之ECMA

    1.JavaScript基础 2.语法规则 3 常用内置对象 4 函数 5 伪数组 6.异常处理 1.1 web前端分为三层 HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化 ...

  4. Linux更改ssh端口号,很easy!

    因为公司业务需求,可能涉及到更改ssh远程的端口号,用下面方法轻松解决,废话不多说! 1.打开ssh端口配置文件:vim /etc/ssh/sshd_config,找到如下图所示的端口,改为自己想改的 ...

  5. Angular之简单的登录注册

    使用Angular实现了一个简单的登录注册的功能........ 涉及到的Angular知识点很少 主要是这个功能的实现...(*^__^*) 嘻嘻…… 里面涉及到的知识点记录: 1.本地存储的操作 ...

  6. ssm整合-错误

    [Err] 1005 - Can't create table 'imoocdb.ec_article' (errno: 150) 这个错误由外键约束引起的 java.lang.ClassCastEx ...

  7. Servlet学习笔记04——什么是重定向,servlet生命周期?

    1.重定向 (1)什么是重定向? 服务器通知浏览器访问一个新的地址. 注: 服务器可以通过发送一个302状态码及一个 Location消息头(该消息头的值是一个地址,一般 称之为重定向地址)给浏览器, ...

  8. array_unique() - 去除数组中重复的元素值

      array_unique() 定义和用法 array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名 ...

  9. 为什么 redis 单线程却能支撑高并发

    redis 和 memcached 有什么区别?redis 的线程模型是什么?为什么 redis 单线程却能支撑高并发? 这个是问 redis 的时候,最基本的问题吧,redis 最基本的一个内部原理 ...

  10. 数据分析处理库Pandas——groupby

    DataFrame结构 指定列中相同元素求和 备注:指定列"key"中相同元素的"data"值求和. 备注:指定列"A"和"B&q ...