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. 马尔克斯
  • 相关阅读:
    python学习第19天
    python学习第18天
    python 端口扫描
    Linux pthread
    python tornado 入门
    C语言 链表排序
    软件版本中的 符号意思
    connect 链接失败: 查找不到 signal
    类模板 与 模板类
    Qt:正则表达式语法:
  • 原文地址:https://www.cnblogs.com/jzsg/p/10982923.html
Copyright © 2011-2022 走看看