zoukankan      html  css  js  c++  java
  • 内存分配策略之复制算法

    复制算法:将内存分为大小相等的两块,例如:A区  B区,程序运行时所需要的内存存放在A区,当A区内存空间不足以存放接下来对象所需分配的内存时,将进行GC操作(将A区存货的对象复制到B区,接下来清理A区所有对象)

    如图(图片来自网络):

    优点:

    1. 提高效率
    2. 减少内存碎片

    缺点:

    1. 所需内存扩大1倍

     优化:

    通常情况下新生代中对象的存活率大概是2%(IMB公司提供数据),所以实际使用中并不需要使用1:1的内存分配方式,而是将新生代分为一个Eden space和from space、to space(from space和to space等大),也就是通常说的Eden区和Survivor区

    在hotspot虚拟机中默认的Eden区和Survivor区的比例是8:1,所以实际新生代可用的内存空间是90%,当内存不足时执行GC操作,将Eden区和其中一个Survivor区的存活对象复制到另一个Survivor区(内存空间是年轻代的10%),清楚Eden区和一个Survivor区

    如果Survivor区不足以存放存活的对象,则会直接分配到老年代中

  • 相关阅读:
    C#重载操作符的那点事
    Winform最小化托盘
    C#多线程传参
    GridView事件大全
    测试2
    测试
    FindFileByContent
    JavaScriptCallCSharp js调用C#属性与方法
    GroupBy
    查询指定属性的文件
  • 原文地址:https://www.cnblogs.com/shiguotao-com/p/10537557.html
Copyright © 2011-2022 走看看