GC调优-XX:PrintGCDetails深度解析
查看程序运行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深度解析的更多相关文章
- GC参考手册 —— GC 调优(基础篇)
GC调优(Tuning Garbage Collection)和其他性能调优是同样的原理.初学者可能会被 200 多个 GC参数弄得一头雾水, 然后随便调整几个来试试结果,又或者修改几行代码来测试.其 ...
- GC参考手册 —— GC 调优(工具篇)
JVM 在程序执行的过程中, 提供了GC行为的原生数据.那么, 我们就可以利用这些原生数据来生成各种报告.原生数据(raw data) 包括: 各个内存池的当前使用情况, 各个内存池的总容量, 每次G ...
- 6. GC 调优(工具篇) - GC參考手冊
进行GC性能调优时, 须要明白了解, 当前的GC行为对系统和用户有多大的影响. 有多种监控GC的工具和方法, 本章将逐一介绍经常使用的工具. 您应该已经阅读了前面的章节: 垃圾收集简单介绍 - GC參 ...
- java虚拟机(十三)--GC调优思路
GC调优对我们开发人员来说,如果你想要技术方面一直发展下去,这部分内容的了解是必不可少的,jvm对于工作.面试来说都很重要,GC调优的问题 更是重中之重,因为是对你jvm学习内容的实践,知识只有应用实 ...
- JVM系列(四)之GC调优
JVM内存参数调优 为什么要GC调优? 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但当你的系统时常报了内存溢出或者 ...
- 生产服务GC调优实践基本流程总结
Photo by Pixabay from Pexels 本文作者:夜色微光 - 博客园 (cnblogs.com) 前言 对Java虚拟机进行性能调优是一个非常宽泛的话题,在实践上也是非常棘手的过程 ...
- Java GC 专家系列3:GC调优实践
本篇是”GC专家系列“的第三篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种G ...
- 性能测试系列-java gc调优
性能测试中除了需要做好性能测试外,我们还需要做性能测试后的,性能调优,需要发现性能问题,也需要做性能调优,在做性能调优中,jvm的性能调优是经常遇到的一个. 随着jdk版本的迅速变化,jdk里面的GC ...
- GC调优在Spark应用中的实践(转载)
Spark是时下非常热门的大数据计算框架,以其卓越的性能优势.独特的架构.易用的用户接口和丰富的分析计算库,正在工业界获得越来越广泛的应用.与Hadoop.HBase生态圈的众多项目一样,Spark的 ...
随机推荐
- 测试JsonAnalyzer2的12个测试用例:
测试用例如下: 01. Compact json text={"status":"","message":"success&quo ...
- leetcode刷题-69x的平方根
题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4输出: 2 思 ...
- 大量数据也不在话下,Spring Batch并行处理四种模式初探
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring相关文章:Springboot-Cloud 前面写了一篇文章<通过例子讲解Spring Batch入门,优 ...
- [LeetCode]子串的最大出现次数(字符串)
题目 给你一个字符串 s ,请你返回满足以下条件且出现次数最大的 任意 子串的出现次数: 子串中不同字母的数目必须小于等于 maxLetters . 子串的长度必须大于等于 minSize 且小于等于 ...
- 对OAuth2.0协议的理解和测试demo
1. 什么是OAuth OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容. OAuth ...
- ⏰ Moment.js 宣布停止开发,现在该用什么?
本文整理自 Monent.js 官方英文公告 https://momentjs.com/docs/#/-project-status/ Moment.js 宣布停止开发,进入维护状态. 这是一个大而全 ...
- python蟒蛇绘制
使用IDLE的文件方式编写代码并保存为PythonDraw.py文件 python蟒蛇绘制 import turtle引入了海龟绘图体系 使用setup函数,设定了一个宽650像素和高350像素的窗体 ...
- Oracle复习(复习精简版v1.0)
自己没记不住的,超基础Oracle知识,新手可以看一下. 大多数例子是用scott用户中的emp表完成 排序:order by 列名 desc是降序,默认是升序: update 表名 set 列 ...
- Apollo系列(二):Apollo在ASP.NET Core 3.1中使用
关于Apollo怎么安装,我就不介绍,可以看这篇文章:https://www.cnblogs.com/vic-tory/p/13736192.html 一.Apollo使用: 1.创建项目 2.添加配 ...
- 注解在Spring中的运用(对象获取、对象单例/多例、值的注入、初始化/销毁方法、获取容器)
1.注解的方式获取对象 (1)导包: (2)书写配置文件(要保证已经导入了约束): <?xml version="1.0" encoding="UTF-8" ...