• STL之空间配置器


    一、四种函数

    1、std::allocator

    内存配置

    2、std::deallocate

    内存释放

    3、std::construct

    对象构造

    4、std::destroy

    对象析构

    二、两级配置器

    原因:为了提升内存管理的效率,较少申请内存造成的内存碎片问题。

    1、第一级空间配置器

    当分配的空间大小超过128B时,会使用第一级空间配置器,使用malloc()、realloc()、free()函数进行内存空间的分配和释放

    2、第二级空间配置器

    当分配的空间大小小于128B时,使用第二季空间配置器,使用内存池技术,通过链表来管理内存

    在分配内存的时候分为三种情况,核心函数 ChunkAlloc

    函数开始,先计算内存池的剩余空间以及分配多个节点需要总共内存空间

    (1)当剩余的内存大于要分配的内存的时,直接分配,之后返回

    (2)当剩余的内存不能满足要配方的多个节点的内存需要,但是满足至少一个节点以上的内存需求,能满足几个节点的内存就分配几个节点的内存,之后返回

    (3)当剩余的内存连一个节点的内存需求都无法满足的时候,将剩余的内存挂在自由连表上,然后向系统申请,成功则返回,申请失败则在自由链表中寻找,如行不通,则调用一级空间适配器

  • 相关阅读:
    Adobe Photoshop cs6 破解方法
    vs2008试用90天破解方法
    Install win8_pro using UltraISO
    面试题-100盏灯问题
    PHP 博客文集 1 Veda原型 成功,唯有积累,没有奇迹
    php 框架
    php 语法2
    干货 连接
    试题 极客学院
    地图
  • 原文地址:https://www.cnblogs.com/socks/p/12745247.html
Copyright © 2020-2023  润新知