使用JVM常用GC日志打印参数
作者:NetWhite 发布时间:2021-09-06 17:36:41
JVM常用GC日志打印参数
1. PrintGC
最简单的GC参数。
启用配置:-XX:+PrintGC
日志如下:
根据上面红色方框内的数字1、2、3、4、5说明,1是GC类型,GC:minor GC(young gc),Full GC:major GC,2是GC前堆内存使用量,3是GC后堆内存使用量,4是堆内存总量,5是本次GC耗时
2. PrintGCDetails
打印GC的详细信息
启用配置:-XX:+PrintGCDetails
日志如下:
不同的垃圾回收器,GC日志(表示年代的词)可能会不一样, 和第一节中差不多,->前的是GC前堆内存使用量,->后面是GC后堆内存使用量,括号内是堆内存总量。
对于这个日志,PSYoungGen:年轻代,ParOldGen:老年代,PSPermGen:持久代(方法区)
Times: user表示用户态CPU耗时,sys表示系统CPU耗时,real表示GC实际耗时
3. PrintGCTimeStamps
GC时,打印进程启动到现在经历的时间
启用配置:-XX:+PrintGCTimeStamps
日志如下:
红色方框内的时间,表示进程启动到现在经历的时间
该参数需要配合其它GC日志打印参数一起使用,如下
4. PrintGCApplicationStoppedTime
打印GC时,应用停顿时间
启用配置:-XX:+PrintGCApplicationStoppedTime
日志如下:
5. PrintGCApplicationConcurrentTime
GC时打印应用执行时间
启用配置:-XX:+PrintGCApplicationConcurrentTime
日志如下:
6. PrintHeapAtGC
每次GC前后打印堆信息
启用配置:-XX:+PrintHeapAtGC
日志如下:
p.s. 上面几个参数可同时配合使用,同时使用PrintGC和PrintGCDetails时,打印的详细信息。
GC日志信息默认是打印到控制台,如果需要输出到文件,可以使用参数:-Xloggc:gc.log,gc.log是要输出的日志文件,路径为应用启动路径的相对路径下,也可以使用绝对路径。
JVM打印GC日志到文件
package gc;
public class GcTest {
private static final int _1MB= 1024 * 1024;
public static void main(String[] args) {
byte[] a1, a2, a3, a4;
a1 = new byte[2 * _1MB];
a2 = new byte[2 * _1MB];
a3 = new byte[2 * _1MB];
a4 = new byte[2 * _1MB];
}
}
打印GC日志
D:\study\workspace\jvm\src>java -Xms20M -Xmx20M -Xmn10M -XX:Survivor
Ratio=8 -XX:+PrintGCDetails -Xloggc:d:\gc.log gc.GcTest
来源:https://blog.csdn.net/x763795151/article/details/89981686


猜你喜欢
- 委托这个东西不是很好理解,可是工作中又经常用到,你随处可以看到它的身影,真让人有一种又爱又恨的感觉,我相信许多人被它所困扰过。一提到委托,如
- C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解。还有托管堆,栈,ref,out等等概念也是每个C#程序员
- 这篇文章主要介绍了Spring如何在一个事务中开启另一个事务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- Springboot根据配置文件动态注入接口实现类需求最近在做一个Springboot项目,需要面向不同需求的客户,但是为了方便管理分支,需
- 目的:使用Fleck框架实现网页与服务端实时通信传统的网站采用http方式与服务端通信,属于请求响应模式,如何让网页与服务器之间能使用TCP
- 本文实例讲述了C#通过WIN32 API实现嵌入程序窗体的方法,分享给大家供大家参考。具体如下:这是一个不使用COM,而是通过WIN32 A
- 一.显示、隐藏 jQuery 中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显示内容和隐藏内
- 本文实例为大家分享了SpringBoot +Mail+FreeMarker发送邮件,供大家参考,具体内容如下通过spirngboot 自带的
- 本文实例为大家分享了java字符串和数字转换工具的具体代码,供大家参考,具体内容如下package com.test.util;/** *
- 一、内部类的概念在 Java 中,可以将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。内部类也是封装的一种体现。p
- 制作透明窗体办法有好几种,各有优缺点. 我们先来看看C#本身提供的办法 1:通过设置窗体的 TransparencyKey实现 例:窗体中
- android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 Translat
- Spring Data Elasticsearch提供了ElasticsearchTemplate工具类,实现了POJO与elasticse
- 刚刚接触Java不久,写法上和一些术语还不是很熟悉,如有不对的地方,希望指正。本次学生成绩系统要求能实现成绩录入, * ,绩点计算,退出系
- 1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,
- Android 解决ScrollView嵌套CridView显示问题由于GridView是可滑动的控件,嵌套在ScrollView下时需要重
- 概述众所周知使用 JWT 做权限验证,相比 Session 的优点是,Session 需要占用大量服务器内存,并且在多服务器时就会涉及到共享
- 前面我们完成了与商品类别相关的业务逻辑,接下来我们开始做具体商品部分。1. 数据库建表并映射Model首先我们在数据库中新建一张表,然后使用
- mybatis #{}无法自动添加引号传入string类型时,无法自动添加引号,导致SQL将值识别为列名,导致SQL失败解决使用map类型代
- eclipse运行tomcat提示端口被占用今天碰到一个问题,在eclipse中运行一个程序,eclipse里面的tomcat一启动就报错说