深机笔记
来源:互联网 发布:东吴证券怎么样 知乎 编辑:程序博客网 时间:2024/05/21 18:42
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》3.6节
较普遍的内存分配规则:
1. 优先在新生代Eden区分配。Eden区无足够空间时,发起一次Minor GC(新生代GC)
2. 大对象直接进入老年代。避免Eden、Survivor间发生大量复制
3. 长期存活的对象将进入老年代。对象在Survivor“熬过”一次Minor GC年龄加1,当年龄达到阈值(默认15)被晋升到老年代
4. 动态对象年龄判定。若Survivor中相同年龄对象大小总和大于Survivor空间一半,年龄大于或等于该年龄的对象可直接进入老年代,无须等到MaxTenuringThreshold要求的年龄
5. 空间分配担保。Minor GC前,检查老年代最大可用连续空间是否大于新生代所有对象总空间,若是,则Minor GC可确保是安全的,若不是,则查看是否允许担保失败,若允许,则继续检查老年代最大可用连续空间是否大于历次晋升到老年代对象的平均大小,若大于,则进行Minor GC(有风险,若风险发生则进行Full GC),若小于、或不允许担保失败,则进行Full GC(老年代GC)
参数:
-XX:+PrintGCDetails,打印内存收集日志
-XX:PretenureSizeThreshold,直接分配到老年代的对象大小阈值
-XX:MaxTenuringThreshold,对象晋升老年代的年龄阈值
-XX:+HandlePromotionFailure,允许担保失败/允许Minor GC冒险,JDK 6 Update 24后此参数失效,固定设置为允许担保失败
阅读全文
0 0
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 深机笔记
- 第三次面试
- CF414E,splay维护括号序列,码农题
- vs 2013的一些设置
- 利用Cordova对H5页面进行APP开发打包
- 进程/线程池/进程ID/进程间的通讯pipe/Queue/Manager/进程同步
- 深机笔记
- READ_EXTERNAL_STORAGE 在23之上的权限获取 在两个app上同样的申请 不同的结果 why
- 51nod 1275 连续子段的差异
- 使用Session防止表单重复提交
- POJ2549-Sumsets
- 微信开发平台-获取用户信息(一)
- 数据库索引的优缺点
- 学习笔记:vijos1037[差值dp] 自己也不知道怎么就搞出来了
- 单机MySQL到NoSQL集群 腾讯存储进阶路