论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
《JVM第7课》堆区
《JVM第7课》堆区
八卦阵
金牌会员
|
2024-11-6 13:35:46
|
显示全部楼层
|
阅读模式
楼主
主题
844
|
帖子
844
|
积分
2532
1.概念
堆是JVM中最重要的一块地区,JVM规范中规定全部的对象和数组都应该存放在堆中,在执行字节码指令时,会把创建的对象存入堆中,对象的引用地点存入虚拟机栈的栈帧中。不过当方法执行完之后,刚刚所创建的对象并不会立马被回收,也就是说对象并不会随着栈帧的消失而消失,而是要等JVM后台执行GC后,对象才会被回收。
2.指定堆大小
-Xms:指定堆的初始内存大小,ms(memory start)。等价于 -XX:InitialHeapSize;
-Xmx:指定堆的最大内存大小,mx(memory max)。等价于 -XX:MaxHeapSize;
一般会把 -Xms 和 -Xmx 设置为一样,这样JVM就不必要在GC后去修改堆的内存大小了,提高了服从。默认情况下,-Xms等于物理内存大小/64,-Xmx等于物理内存大小/4。
3.新生代和老年代
垃圾回收算法有很多,但基本上都会把内存分为新生代和老年代两块地区。新生代存放新创建的对象,老年代存放执行了许多次GC(默认为15次)后还存活的对象。
可以通过 -XX:NewRatio 参数来配置老年代和新生代的比例,默认为 -XX:NewRatio=2,表现新生代占1,老年代占2。一般是不必要调整的,只有明确知道存活时间比较长的对象偏多或偏少,才必要调整 -XX:NewRatio 的比值。
3.1 新生代
新生代又可以分为 Eden(伊甸园区)和 S0、S1 区。
Eden:
伊甸园区,新对象都会先放到Eden区。
S0、S1区:
Survivor0、Survivor1区,也可以叫做from、to区,用来存放MinorGC(YGC)后存在的对象。
默认情况下 Eden、S0、S1 的比例为 8:1:1,也就是说Eden区占新生代大小的 8/10。可以通过 -XX:SurvivorRatio 来调整。
3.2 老年代
老年代存放执行了许多次GC后还存活的对象。老年代默认占内存地区的2/3。
3.3 动画演示
动画演示对象在内存各地区中的流转过程
对象会先被放到Eden区。
执行 Young GC 后会被放到S0或S1区,S0和S1不能同时非空,对象会在S0和S1之间反复跳跃。
在执行一定次数(默认为15次)的 Young GC 后假设对象还没有被回收掉,就会进入老年代地区。
如果新对象大小超过了 Eden 区剩余空间大小,则会直接进入S0或S1,如果S0或S1放不下则会直接进入老年代。
老年代继续执行 Old GC 对其中对象进行回收。
这里的 Young GC 和 Old GC 也可叫做 Minor GC 和 Major GC,它们并不是垃圾回收器的名字,只是代表年轻代和老年代的垃圾回过程
。
4.分代收集理念
上面的新生代老年代就是分代收集理念,有些时候会被叫做分代收集算法,但实在它是一种理念。默认险些全部的垃圾回收算法都是采用分代收集理念。
为什么垃圾回收算法要把内存地区分为新生代和老年代,新生代里又包含Eden区、Survivor0、Survivor1区呢?
这是由于不同的对象存活时长是不一样的,所以要针对存活时长不同的对象采取不同的垃圾回收算法。
新生代中的对象存活时间比较短,那么就可以采取“复制算法”(后面的章节会先容)。
老年代中的对象存活时间比较长,所以不太适合用复制算法,可以用“标记-清除算法”或“标记-整理算法”(后面的章节会先容)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
八卦阵
金牌会员
这个人很懒什么都没写!
楼主热帖
不可思议但又无处不在的漏洞,WEB安全 ...
【历史上的今天】6 月 2 日:苹果推出 ...
企业应用超融合架构的设计实例及超融合 ...
C#实现HTTP访问类HttpHelper
开源共建 | Dinky 扩展批流统一数据集 ...
ClickHouse 查询优化详细介绍
Python字符串替换的3种方法
袋鼠云春季生长大会圆满落幕,带来数实 ...
【软考】系统集成项目管理工程师(二) ...
GreatSQL vs MySQL性能测试来了,速围 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表