学习JAVA虚拟机工具
2015-11-19 00:00
405 查看
执行一段代码:
虚拟机参数: · -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 `
用虚拟机统计信息监视工具jstat查看Test1执行时内存状况
新生代Eden(E)区:使用了89.58%的空间 幸存区(S0,S1):使用了13.64%的空间 老年代(O——old)和永久代(P——permanent)分别使用了58.25%和99.91%的空间 程序运行以来总共 发生Minor GC(YGC) 33次,耗时0.667秒 发生Full GC(FGC) 17次,耗时3.538秒 所有GC总耗时(GCT)为4.205秒
再次执行Test1并查看内存状况
发现Survivor0区使用了,Survivor1区没有使用,伊甸园区也减少的使用比例,但是老年代和永久代都使用比例较高 同样也发生了多次新生代垃圾回收和老年代的垃圾回收 我们再执行一次Test1来看看:
这次执行总体来说和上次基本一样,只是Survivor0区有所增加,原因是一些伊甸园区的对象进入了Survivor0区,但是对于老年代和永久代来说,新生成的对象和被逐出的对象大小基本一样,所以变化很少。
多次执行Test1的代码也发现新生代垃圾回收和老年代垃圾回收的次数基本上是相同的。
package com.icnws; public class Test1 { private static final int _1MB = 1024*1024; public Test1() { } public static void main(String[] args)throws Throwable{ byte[] allocation1,allocation2,allocation3,allocation4; allocation1 = new byte[2 * _1MB]; allocation2 = new byte[3 * _1MB]; allocation3 = new byte[3 * _1MB]; allocation4 = new byte[4 * _1MB];//加了断点 } }
虚拟机参数: · -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 `
用虚拟机统计信息监视工具jstat查看Test1执行时内存状况
c:\Java\jdk1.7.0_67\bin>jstat -gcutil 4996 S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 13.64 89.58 58.25 99.91 33 0.667 17 3.538 4.205
新生代Eden(E)区:使用了89.58%的空间 幸存区(S0,S1):使用了13.64%的空间 老年代(O——old)和永久代(P——permanent)分别使用了58.25%和99.91%的空间 程序运行以来总共 发生Minor GC(YGC) 33次,耗时0.667秒 发生Full GC(FGC) 17次,耗时3.538秒 所有GC总耗时(GCT)为4.205秒
再次执行Test1并查看内存状况
c:\Java\jdk1.7.0_67\bin>jstat -gcutil 4996 S0 S1 E O P YGC YGCT FGC FGCT GCT 39.86 0.00 20.90 45.55 99.86 40 0.808 18 3.872 4.679
发现Survivor0区使用了,Survivor1区没有使用,伊甸园区也减少的使用比例,但是老年代和永久代都使用比例较高 同样也发生了多次新生代垃圾回收和老年代的垃圾回收 我们再执行一次Test1来看看:
c:\Java\jdk1.7.0_67\bin>jstat -gcutil 4996 S0 S1 E O P YGC YGCT FGC FGCT GCT 42.34 0.00 29.58 45.55 99.88 44 0.900 18 3.872 4.771
这次执行总体来说和上次基本一样,只是Survivor0区有所增加,原因是一些伊甸园区的对象进入了Survivor0区,但是对于老年代和永久代来说,新生成的对象和被逐出的对象大小基本一样,所以变化很少。
多次执行Test1的代码也发现新生代垃圾回收和老年代垃圾回收的次数基本上是相同的。
相关文章推荐
- Java 6 JVM参数选项大全(中文版)
- Ubuntu 安装 JDK 问题
- jdk与jre的区别 很形象,很清晰,通俗易懂
- jdk中String类设计成final的原由
- win7下安装 JDK 基本流程
- jdk环境变量配置
- win2003 jsp运行环境架设心得(jdk+tomcat)
- windows linux jdk安装配置方法
- Java虚拟机JVM性能优化(二):编译器
- Java程序员必须知道的5个JVM命令行标志
- 简单记录Cent OS服务器配置JDK+Tomcat+MySQL
- Android开发的IDE、ADT、SDK、JDK、NDK等名词解释
- Java4Android开发教程(一)JDK安装与配置
- Eclipse配置Tomcat和JDK步骤图解
- java中sdk与jdk的区别详细解析
- Java虚拟机JVM性能优化(三):垃圾收集详解
- 解析Java虚拟机中类的初始化及加载器的父委托机制
- jdk中密钥和证书管理工具keytool常用命令详解
- 在Ubuntu系统下安装JDK和Tomcat的教程
- java动态代理(jdk与cglib)详细解析