大于128B的内存申请用一级空间配置器,直接使用malloc(),realloc()、free()函数。
对于小于128B的二级空间配置器,采用内存池技术。

注释:内存池=大内存+16个空闲链表(free-list)

①申请空间
②对应的8字节的倍数在16个空闲链表找对应的区域。如果够了,直接结束。
③如果没有找到,再申请20块数据库(一般),如果没有20块,能申请多少算多少。如果如果够了,直接结束。
注:这个阶段用refill重新充填空闲列表。
④这里从内存池取空间给空闲链表是用chunk_alloc工作,用end_free-start_free 来判断内存池可以调出空间,如果一个数据库都没法取出需要用malloc去堆中申请。
⑤如果堆中还是没有空间,则去循环遍历其他自由链表。
⑥还是不够进入一级空间配置。

SGI STL空间配置相关推荐

  1. 【STL深入学习】SGI STL空间配置器详解(二)-第二级空间配置器

    本文讲解SGI STL空间配置器的第二级配置器. 相比第一级配置器,第二级配置器多了一些机制,避免小额区块造成内存的碎片.不仅仅是碎片的问题,配置时的额外负担也是一个大问题.因为区块越小,额外负担所占 ...

  2. 剖析SGI STL空间配置器(空间配置器的重要性和重要成员及函数)

    剖析SGI STL空间配置器 在我们使用STL容器的时候,模板最后一个参数会有一个默认的allocator作为容器模板的参数,这个参数就是STL的空间配置器.容器的空间配置器见这篇文章:容器空间配置器 ...

  3. 剖析SGI STL空间配置器(deallocate内存回收函数和reallocate内存扩充函数)

    剖析SGI STL空间配置器(deallocate内存回收函数和reallocate内存扩充函数) deallocate内存回收函数 deallocate函数的定义: static void deal ...

  4. 【STL深入学习】SGI STL空间配置器详解(一)-第一级空间配置器

    一.SGI STL配置器简介 SGI STL的配置器与众不同,它与标准规范不同.如果要在程序中明确使用SGI配置器,那么应该这样写: vector<int,std::alloc> iv; ...

  5. 内存管理(四)SGI STL 空间配置器

    前言 根据之前的学习,C++的内存申请的基本操作就是: 调用::operator new():释放内存的操作就是:调用 ::operator delete().而二者是通过malloc() 和 fre ...

  6. 489-剖析SGI STL空间配置器

    引言 不管是C的malloc free 还是C++的new delete,底层涉及内存管理调用的都是malloc,free,malloc和free是C的库函数. 如果我们在应用场景中涉及小块内存的开辟 ...

  7. SGI STL 空间配置器

    文章目录 一.空间配置器 二.为什么使用空间配置器? 三.construct.h 四.std::alloc的实现 关于std::alloc stl_alloc.h 空间的配置与释放 一级配置器 二级配 ...

  8. STL空间配置器(二)

    ***上一篇是对STL空间配置器的入门级理解,在这一篇中,我将讨论更加深入的SGI STL空间适配器的内容.在下一节中,我将根据自己的理解,结合STL标准接口,实现一个符合STL标准的具有次级配置能力 ...

  9. malloc开辟的空间在哪一个区间_C++进阶系列之STL(2)SGI版本空间配置器

    1.STL中的空间配置器在STL中,空间配置器分了2组,分别为一级空间配置器和二级空间配置器,但是它们都有自己各自运用的场合:一般说来,一级空间配置器一般分配的空间大于128B,二级空间配置器的分配空 ...

最新文章

  1. Yii AR Model 查询
  2. 拥抱 Java 8 并行流吧,速度飞起!
  3. java是如何实现原语的_Java中的低GC:使用原语而不是包装器
  4. Python库:Imageio库(待完善)
  5. 排序算法(四)--谢尔排序(缩小增量排序)
  6. nginx开发_Filter模块执行顺序
  7. 单片机红外模块知识分享,理论是日后实战的基础
  8. 【OpenCV】立体匹配算法SSD、NCC、ASW的基础实现
  9. C++中指针和引用区别
  10. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(二)数据库初始化、基本登录页面以及授权逻辑的建立...
  11. UE4如何使用下载的资源
  12. java命名不规范会怎样_java命名规范:注重细节
  13. 顺序表和链表 相关知识点总结
  14. Campass + Scss ,让我们更优雅的编写CSS
  15. Mac -- 插入移动硬盘后没有显示
  16. 解决windows文件名过长无法删除的问题
  17. idear怎么设置自动导包
  18. 确定sw1开关信号输入端口_MEMS光学器件— MEMS OXC(光交叉互连开关)
  19. [心情]享受堕落的乐趣
  20. 怎么用计算机弹出传说之下,传说之下神器怎么拿

热门文章

  1. 查看Mac苹果电脑的CPU型号,并跑分
  2. 爱室丽Ashley家居 EDI需求概览
  3. 基于PaddlePaddle的智慧课堂实时监测系统
  4. 高新技术企业认定成功后还需要做哪些工作?
  5. 一个半月拿到阿里字节拼多多美团offer总结
  6. 如何在jupyter notebook标注
  7. 盈谷网络发布医学影像平台“医真云”,重新定义人工智能+大数据时代下的PACS系统
  8. python中try/except用法简介
  9. 修改qq服务器时间限制,为什麼QQ改不了密码?他显示请在常用IP上修改密码但我试过下Q改时间再改了还是不行...
  10. matlab拟合空间曲线。散点拟合三维曲线