idea 在vm options处加入-XX:+PrintGCDetails,可打印GC日志。

 public class ReferenceCountingGC {

     public Object instance=null;

     private static final int _1MB=1024*1024;

     private byte[] bigSize=new byte[2*_1MB];

     public static void testGC(){
ReferenceCountingGC objA=new ReferenceCountingGC();
ReferenceCountingGC objB=new ReferenceCountingGC();
objA.instance=objB;
objB.instance=objA; objA=null;
objB=null; System.gc();
} public static void main(String[] args) {
testGC();
} }

打印GC日志为:

[GC (Allocation Failure) [DefNew: 3762K->512K(4928K), 0.0044320 secs] 3762K->2609K(15872K), 0.0171251 secs] [Times: user=0.00 sys=0.00, real=0.02 secs]
[Full GC (System.gc()) [Tenured: 2097K->560K(10944K), 0.0031949 secs] 4657K->560K(15872K), [Metaspace: 2131K->2131K(4480K)], 0.0036546 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
Heap
def new generation total 4992K, used 91K [0x04800000, 0x04d60000, 0x09d50000)
eden space 4480K, 2% used [0x04800000, 0x04816d20, 0x04c60000)
from space 512K, 0% used [0x04c60000, 0x04c60000, 0x04ce0000)
to space 512K, 0% used [0x04ce0000, 0x04ce0000, 0x04d60000)
tenured generation total 10944K, used 560K [0x09d50000, 0x0a800000, 0x14800000)
the space 10944K, 5% used [0x09d50000, 0x09ddc140, 0x09ddc200, 0x0a800000)
Metaspace used 2149K, capacity 2280K, committed 2368K, reserved 4480K

——————————————————————————————————————

“[GC” 说明垃圾收集的停顿类型。

“[Full GC”说明这次GC发生了Stop-The-World。此处是调用了System.gc()所触发的收集。

“[DefNew”、“[Tenured”表示GC发生的区域。Default New Generation。

“3762K->512K(4928K)”表示GC前该内存区域已使用容量->GC后该区域已使用容量(该内存区域总容量)。

“3762K->2609K(15872K)”表示GC前java堆已使用容量->GC后java堆已使用容量(java堆总容量)。

“0.0171251 secs”表示该内存区域GC所占用的时间,单位是秒。

“[Times: user=0.00 sys=0.00, real=0.02 secs] ”表示用户态消耗的CPU时间,内核态消耗的CPU事件,操作从开始到结束所经过的墙钟时间(包括各种非运算的等待耗时)。

“tenured generation”老年代

“the space 10944K, 5% used”表示老年区的内存大小是10944K,5%被使用。

“Metaspace” Java8中,永久代已经被移除,被一个称为“元数据区”(元空间)的区域所取代。

理解Java GC日志的更多相关文章

  1. Java GC 日志详解(转)

    Java GC日志可以通过 +PrintGCDetails开启 以ParallelGC为例 YoungGC日志解释如下(图片源地址:这里) : FullGC(图片源地址:这里): http://blo ...

  2. Java GC 日志详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt105 java GC日志可以通过 +PrintGCDetails开启 以Pa ...

  3. 理解CMS GC日志

    本文翻译自:https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs 准备工作 JVM的GC日志的主要参数包括如下几个:-XX:+ ...

  4. 【GC分析】Java GC日志查看

    Java中的GC有哪几种类型? 参数 描述 UseSerialGC 虚拟机运行在Client模式的默认值,打开此开关参数后, 使用Serial+Serial Old收集器组合进行垃圾收集. UsePa ...

  5. Java GC 日志输出分析

    搜到的几篇讲GC日志的文章,学到了很多东西.但是有些错误或者不够精确的地方. 因此自己尝试着总结一下. 先写个程序,然后结合程序解释每句话的意思. 运行参数 -Xms200M -Xmx200M -Xm ...

  6. Java GC 日志解析

    JVM 在Java应用程序优化中是不可缺少的一大重项,如何合理配置Java参数,如果验证配置参数的有效性,从GC日志中可以获得很重要的提示,以下是笔者对GC垃圾收集器默认开启的组合日志的部分的解析,希 ...

  7. Java GC日志查看

    Java GC类型 Java中的GC有哪几种类型? 参数 描述 UseSerialGC 虚拟机运行在Client模式的默认值,打开此开关参数后, 使用Serial+Serial Old收集器组合进行垃 ...

  8. 深入理解 Java —— GC 机制

    1. 基础知识 1.1 什么是垃圾回收? 程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢出,所以对内存资源的管理非常重要. 垃圾回收就是对这些无效资 ...

  9. java gc日志详解

    从 Full GC 信息可知,新生代可用的内存大小约为 18M,则新生代实际分配得到的内存空间约为 20M(为什么是 20M? 请继续看下面...).老年代分得的内存大小约为 42M,堆的可用内存的大 ...

随机推荐

  1. maxim - Android UI压力测试

    项目介绍 项目地址:https://github.com/zhangzhao4444/Maxim 与monkey对比优势: 快 稳:只进行有意义的操作,防误点状态栏,不会乱断网.卸载应用 支持脱机运行 ...

  2. Centos7 安装vscode

    1.官网下载vscode https://vscode.cdn.azure.cn/stable/0f3794b38477eea13fb47fbe15a42798e6129338/code-1.36.0 ...

  3. 初识PHP变量函数语法

    PHP连接字符串 . <?php '你好,'.'我的亲爱的老师'?> PHP语句结束符 <?php echo "欢迎同学们!"; echo "Welco ...

  4. js高级编程思想

    js惰性思想: 能够执行一次就搞定绝对不会执行第二次 function createXHR(){ var xhr=null, falg=false, ary=[ function(){ return ...

  5. 简易的富文本编辑器WangEditor

    网址http://www.wangeditor.com/ var E = window.wangEditor; var editor = new E('#editor') // 或者 var edit ...

  6. servlet 实践

    基础 当Servlet引擎收到一个请求,它将请求所有的细节汇编到一个HttpServletRequest对象.细节包括请求头部.URI.查询字符串和任意发送的参数等等.类似地,它初始化一个处理响应头部 ...

  7. 笔记70 Spring Boot快速入门(八)(重要)

    上传文件 一.方式一 1.上传页面 upLoadPage.html <!DOCTYPE html> <html lang="en"> <head> ...

  8. python 读取文件时,精确的保留数据

    import numpy as npimport pandas as pd point = pd.read_csv('waypoint21.csv') with pd.option_context(' ...

  9. tensorflow基础重新巩固

    tensorflow框架整体结构 用张量tensor表示数据:计算图graph表示任务:在会话session中执行context: 通过变量维护状态:通过feed和fetch可以任意的操作(arbit ...

  10. Python执行和拷贝

    import paramiko from scp import SCPClient class LinuxSSHSCP(object): def __init__(self, ip, username ...