文档章节

学习JAVA虚拟机工具

雷神雨石
 雷神雨石
发布于 2015/11/19 11:25
字数 476
阅读 4
收藏 0

执行一段代码:

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的代码也发现新生代垃圾回收和老年代垃圾回收的次数基本上是相同的。

© 著作权归作者所有

共有 人打赏支持
上一篇: FTPclient的Demo
下一篇: 学习计划
雷神雨石

雷神雨石

粉丝 88
博文 200
码字总数 64286
作品 0
朝阳
程序员
私信 提问
[Java学习探讨]为什么学Java虚拟机的Java程序员更值钱?

[Java学习探讨]为什么学Java虚拟机的Java程序员更值钱? 曾经的我经常害怕处理与JVM相关的异常,对JVM的配置参数也一无所知,那时候我天真地认为,JVM的出现本身就是想让程序员屏蔽实现细节,...

原创小博客
2018/07/19
0
0
面试中关于Java虚拟机(jvm)的问题看这篇就够了

最近看书的过程中整理了一些面试题,面试题以及答案都在我的文章中有所提到,希望你能在以问题为导向的过程中掌握虚拟机的核心知识。面试毕竟是面试,核心知识我们还是要掌握的,加油~~~ 下面...

snailclimb
2018/05/12
0
0
JVM学习总结五——性能监控及故障处理工具

之前扯了四篇理论,这一篇终于可以动动手了。本篇我们将介绍JVM常用的一些工具,这些工具将是我们监控JVM状态、处理故障和调优分析的利器。 不过在开始之前,我还是要先车扯两句:工具终归只...

oO脾气不坏Oo
2014/03/16
0
0
JVM系列第1讲:Java 语言的前世今生

Java 语言是一门存在了 20 多年的语言,其年纪比我自己还大。虽然存在了这么长时间,但 Java 至今都是最大的工业级语言,许多大型互联网公司均采用 Java 来实现其业务系统。大到国际电商巨头...

陈树义
2018/11/07
0
0
-1-0 Java 简介 java是什么 java简单介绍

Java是一门纯粹的面向对象的高级的平台无关的编程语言 官网介绍: 了解 Java 技术 https://www.java.com/zh_CN/about/ 推荐词条: https://zh.wikipedia.org/wiki/Java https://zh.wikipedia.o...

noteless
2018/07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

单元测试

右键方法 Go To --> Test,简便快速生成测试方法。 相关注解 @RunWith(SpringRunner.class) 表示要在测试环境中跑,底层实现是 jUnit测试工具。 @SpringBootTest 表示启动整个 Spring工程 @A...

imbiao
昨天
0
0
欧拉公式

欧拉公式表达式 欧拉公式的几何意 cosθ + j sinθ 是个复数,实数部分也就是实部为 cosθ ,虚数部分也就是虚部为 j sinθ ,对应复平面单位圆上的一个点。 根据欧拉公式和这个点可以用 复指...

sharelocked
昨天
2
0
burpsuite无法抓取https数据包

1.将浏览器和burpsuite的代理都设置好 2.在浏览器地址栏输入: http://burp 3.下载下面的证书,并将证书导入浏览器 cacert.der

Frost729
昨天
2
0
JeeSite4.x 消息管理、消息推送、消息提醒

实现统一的消息推送接口,包含PC消息、短信消息、邮件消息、微信消息等,无需让所有开发者了解消息是怎么发送出去的,只需了解消息发送接口即可。 所有推送消息均通过 MsgPushUtils 工具类发...

ThinkGem
昨天
8
0
OpenML

https://www.openml.org/search?type=data

shengjuntu
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部