当前位置: 首页 > news >正文

Java --- JVM年轻代与老年代

一、年轻代与老年代

1、存储在VM中的Java对象可以被划分为两类:①、一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速。②、另外一类对象的生命周期却非常长,在某些极端的情况下还能够与VM的生命周期保持一致。

2、Java堆区进一步细分的话,可以划分为年轻代(YoungGen)和老年代(OldGen)

3、其中年轻代又可以划分为Eden空间、Survivor0空间和survivor1空间(有时也叫做from区、to区) 。

 1.1、配置新生代与老年代在堆结构的占比

1、默认-XX:NewRatio=2,表示新生代占1,老年代占2,新生代占整个堆的1/3,这个参数一把不需要修改,使用默认就行。

public class EdenSurvivorTest {
    public static void main(String[] args) {
        System.out.println("路过Java");
        try {
            Thread.sleep(1000000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

2、可以修改-XX:NewRatio=4,表示新生代占1,老年代占4,新生代占整个堆的1/5。

3、在HotSpot中,Eden空间和另外两个survivor空间缺省所占的比例是8:1:1

 设置参数 -Xms600m -Xmx600m -XX:-UseAdaptiveSizePolicy 意思是关闭自适应的内存分配策略,再次观察。

4、当然开发人员可以通过选项“-XX :SurvivorRatio”调整这个空间比例。比如-XX : SurvivorRatio=8

 5、几乎所有的Java对象都是在Eden区被new出来的。

6、绝大部分的Java对象的销毁都在新生代进行了。IBM公司的专门研究表明,新生代中80% 的对象都是“朝生夕死”的。

7、可以使用选项”-Xmn"设置新生代最大内存大小,这个参数一般使用默认值就可以了。

相关文章:

  • 制作地图的布局、元素和设计介绍
  • C/C++面试准备——运算符
  • 【华为机考】ACM输入输出(中等+)
  • 美团四年,字节三年这七年测试之路希望能让正在迷茫的你少走弯路
  • Vue 基础
  • Ts/Typescript基础运用
  • 嵌入注意力机制的多尺度深度可分离表情识别--2021.宋玉琴
  • 页面登录功能的思路
  • ShardingSphere 5.2.0:分片审计功能拦截多分片场景下的不合理请求
  • 毕业设计 单片机stm32智能大棚监控护理系统 - lora 远程通信
  • 关于QCefView的一些事
  • b站pink老师JavaScript的jQuery 案例代码——电梯导航案例
  • Python快速实现简易飞机大战小游戏
  • PowerWorld仿真与电力系统潮流计算(牛顿拉夫逊法和高斯赛德尔法)(Matlab实现)
  • VSCode自动更新后关闭,重新打开后版本自动降级
  • JavaScript-如何实现克隆(clone)函数
  • 2017-08-04 前端日报
  • angular2 简述
  • avalon2.2的VM生成过程
  • Computed property XXX was assigned to but it has no setter
  • CSS 三角实现
  • isset在php5.6-和php7.0+的一些差异
  • Laravel Telescope:优雅的应用调试工具
  • Python进阶细节
  • Quartz初级教程
  • 从setTimeout-setInterval看JS线程
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 如何利用MongoDB打造TOP榜小程序
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 走向全栈之MongoDB的使用
  • elasticsearch-head插件安装
  • linux 淘宝开源监控工具tsar
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 选择阿里云数据库HBase版十大理由
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​2021半年盘点,不想你错过的重磅新书
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​如何在iOS手机上查看应用日志
  • #1014 : Trie树
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (03)光刻——半导体电路的绘制
  • (3)STL算法之搜索
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Note)C++中的继承方式
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (一)基于IDEA的JAVA基础10
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core 成都线下面基会拉开序幕
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net6 webapi log4net完整配置使用流程