zoukankan      html  css  js  c++  java
  • 【JAVA】 jvm 新生代内存不足的对象内存区域转移

    package pres.ndz.simple;
    
    
    
    
    public class App {
    
    
        private static final int  _1MB = 1024*1024;
    
    
        /**
         * -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
         *
         * -Xmn10M 规定新生代大小为10M
         * -XX:SurvivorRatio=8 新生代和存活区存活比例8:1
         */
        public static void main(String[] args) {
            byte[] allocation1, allocation2, allocation3, allocation4;
    
            allocation1 = new byte[2 * _1MB];
            allocation2 = new byte[2 * _1MB];
            allocation3 = new byte[2 * _1MB];
            allocation4 = new byte[4 * _1MB];
    
    
            // allocation4 jvm 会发现新生代内存不足 此时会进行jc (Minor GC 指新生代GC)
            // 发生 jc时又发现3个2MB  的对象无法全部放到 存活区(存活区1M)
            // 从而会将allocation1, allocation2, allocation3担保到老年代
    
            // 结论: 当新生代内存不足 对象的内存位置转移顺序 新生代->存活区->老年代
    
        }
    
    
    }
    
    
    “年轻时,我没受过多少系统教育,但什么书都读。读得最多的是诗,包括烂诗,我坚信烂诗早晚会让我邂逅好诗。” by. 马尔克斯
  • 相关阅读:
    BIEE建模参考规范
    informatica 学习日记整理
    Web Service 的工作原理
    Oracle 时间差计算
    oracle基础知识
    Oracle 外连接和 (+)号的用法
    根据appId匹配项目名称
    vue技术分享-你可能不知道的7个秘密
    echarts3 迁徙图 迁入迁出
    ES6学习笔记
  • 原文地址:https://www.cnblogs.com/jzsg/p/10982923.html
Copyright © 2011-2022 走看看