zoukankan      html  css  js  c++  java
  • C++技术问题总结-第8篇 STL内存池是怎么实现的

        STL内存池机制,使用双层级配置器。第一级採用malloc、free,第二级视情况採用不同策略。

    这样的机制从heap中要空间,能够解决内存碎片问题。


    1.内存申请流程图
        简要流程图例如以下。


    2.第二级配置器说明
        第二级配置器目的解决小型区块造成的内存碎片问题。


        使用自由链表(free-list)技巧。主动将不论什么小额区块的内存需求量上调至8的倍数。如需求30,则上调至32。
        free-list节点结构
        union obj
        {
            union obj* free_list_link;
            char client_data[];
        };
        有16个free-lists。各自管理大小分别为8、16、24、32、40、48、56、64、72、80、88、96、104、112、120、128 bytes的小额区块。
        申请流程例如以下。

        释放流程例如以下。


  • 相关阅读:
    数据库存储语句
    数据库练习总结
    数据库练习
    数据库增添
    数据库创建
    cookie 和 session的区别 & 三种传值方式
    内置对象——cookie
    webform跨页面传值
    复合控件
    repeater(控件)数据展示
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6936810.html
Copyright © 2011-2022 走看看