查看程序运行GC的运行情况

资源充足的GC情况

新生代
老年代
元空间
因为现在资源充足没有发生GC

*案例将JVM初始化内存与最大内存(防止内存抖动,反复GC)调至10m,new一个50m的数组对象,发生OOM

源码

package com.adun.test_jvm;

/**
* @author zhudunfeng
* @date 2020/8/29 22:13
*
* JVM参数调优:
* (1)标准参数
* (2)X参数(了解):
* Xint:解释执行
* Xcomp:第一次使用就编译成本地代码
* Xmixed:混合模式,(先编译再执行)
* (3)XX参数
* (i)Boolean类型
* (ii)KV设值类型
*
* 常用的-XX参数
* -Xms JVM初始大小内存,默认为物理内存的1/64 等价于-XX:InitialHeapSize
* -Xmx JVM最大分配内存,默认为物理内存的1/4 等价于-XX:MaxHeapSize
* -Xss 设置单个线程栈的大小,一般默认为512k~1024k 这里是根据Jvm所在平台来确定【查看官网Java文档】 等价于-XX:ThreadStackSize
* -Xmn 设置年轻代大小【年轻代中【伊甸区:幸存0区:幸存1区】【8:1:1】】
* -XX:MetaspaceSize 设置元空间的大小
*/
public class HelloGC {
public static void main(String[] args) throws InterruptedException { //返回Java的虚拟机中的内存信息
long totalMemory = Runtime.getRuntime().totalMemory();
//返回Java虚拟机试图使用的最大内存量
long maxMemory = Runtime.getRuntime().maxMemory();
System.out.println("TotalMembery(Xms)=:"+totalMemory+"(字节)、"+(totalMemory/(double)1024/1024)+"MB");
System.out.println("TotalMembery(Xmx)=:"+maxMemory+"(字节)、"+(maxMemory/(double)1024/1024)+"MB"); System.out.println("*************hello java"); //作死操作,new 一个对象超过最大内存
// byte[] aByte = new byte[50*1024*1024];
// Thread.sleep(Integer.MAX_VALUE);
}
}

JVM参数配置

查看GC情况

GC参数解读

FullGC参数解读

规律
【名称】【GC前内存占用】(->)【GC后内存占用】(该区内存总大小)
原文路径

GC调优-XX:PrintGCDetails深度解析的更多相关文章

  1. GC参考手册 —— GC 调优(基础篇)

    GC调优(Tuning Garbage Collection)和其他性能调优是同样的原理.初学者可能会被 200 多个 GC参数弄得一头雾水, 然后随便调整几个来试试结果,又或者修改几行代码来测试.其 ...

  2. GC参考手册 —— GC 调优(工具篇)

    JVM 在程序执行的过程中, 提供了GC行为的原生数据.那么, 我们就可以利用这些原生数据来生成各种报告.原生数据(raw data) 包括: 各个内存池的当前使用情况, 各个内存池的总容量, 每次G ...

  3. 6. GC 调优(工具篇) - GC參考手冊

    进行GC性能调优时, 须要明白了解, 当前的GC行为对系统和用户有多大的影响. 有多种监控GC的工具和方法, 本章将逐一介绍经常使用的工具. 您应该已经阅读了前面的章节: 垃圾收集简单介绍 - GC參 ...

  4. java虚拟机(十三)--GC调优思路

    GC调优对我们开发人员来说,如果你想要技术方面一直发展下去,这部分内容的了解是必不可少的,jvm对于工作.面试来说都很重要,GC调优的问题 更是重中之重,因为是对你jvm学习内容的实践,知识只有应用实 ...

  5. JVM系列(四)之GC调优

    JVM内存参数调优 为什么要GC调优? 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但当你的系统时常报了内存溢出或者 ...

  6. 生产服务GC调优实践基本流程总结

    Photo by Pixabay from Pexels 本文作者:夜色微光 - 博客园 (cnblogs.com) 前言 对Java虚拟机进行性能调优是一个非常宽泛的话题,在实践上也是非常棘手的过程 ...

  7. Java GC 专家系列3:GC调优实践

    本篇是”GC专家系列“的第三篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种G ...

  8. 性能测试系列-java gc调优

    性能测试中除了需要做好性能测试外,我们还需要做性能测试后的,性能调优,需要发现性能问题,也需要做性能调优,在做性能调优中,jvm的性能调优是经常遇到的一个. 随着jdk版本的迅速变化,jdk里面的GC ...

  9. GC调优在Spark应用中的实践(转载)

    Spark是时下非常热门的大数据计算框架,以其卓越的性能优势.独特的架构.易用的用户接口和丰富的分析计算库,正在工业界获得越来越广泛的应用.与Hadoop.HBase生态圈的众多项目一样,Spark的 ...

随机推荐

  1. C# aspx 禁止文本款输入缓的几种方法

    1   在ASP.NET中可以在页面中加入以下内容: <%@ OutputCache Location="None" VaryByParam="None" ...

  2. OpenvSwitch系列之六 vlan隔离

    局域网游戏代表:红色警戒 Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令 ...

  3. JVM学习第三天(JVM的执行子系统)之开篇Class类文件结构

    虽然这几天 很忙,但是学习是不能落下的,也不能推迟,因为如果推迟了一次,那么就会有无数次;加油,come on! Java跨平台的基础: 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节 ...

  4. 转载:MySQL万字总结篇

    转载自:https://database.51cto.com/art/202001/609409.htm 开局一张图 这张图是重点!!!咱要先对 MySQL 有一个宏观的了解,知道他的执行流程. 一条 ...

  5. 原生JDK网络编程- NIO之Reactor模式

    “反应”器名字中”反应“的由来: “反应”即“倒置”,“控制逆转”,具体事件处理程序不调用反应器,而向反应器注册一个事件处理器,表示自己对某些事件感兴趣,有时间来了,具体事件处理程序通过事件处理器对某 ...

  6. Ubuntu 18.04 LTS 配置静态IPv6地址

    学校的IPv4地址限制了校内IP访问,在家连校内机器只能先连接学校的VPN,十分不方便.好在学校没有对IPv6地址做限制,因此我们可以给自己的机器配置一个静态IPv6地址来绕过这个限制. 本机系统使用 ...

  7. Java使用JDBC连接Oracle数据库

    import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; /** * @author liu ...

  8. liunx配置本地yum源和更新aliyun yum源

    1.挂载DVD光盘到/mnt   因为配置时候路径名里面不能有空格,否则不能识别 [root@ mnt]# mount   /dev/cdrom   /mnt [root@ mnt]# umount ...

  9. Unit4:碎片

    基本使用 动态调用 碎片和活动 碎片周期

  10. Dubbo必须会的知识点

    前言 应用架构演变: 单一架构ORM:单机构建网站,是一个高内聚版本,所有功能部署在一起.通过一个容器和JSP/Servlet技术或通过一些开源的框架如SSM以及SSH,通过数据库管理系统来存储数据. ...