空间配置器
剖析源码的项目:空间配置器:因为存在内存碎片的问题和效率的问题,所以引入了空间配置器
一、空间配置器:本身是一个内存池
容器是需要大量空间的
池化技术:a、内存池(用于频繁申请不大的内存);b、线程池(并发时经常要创建时);c、连接池(通常用于数据库的连接,每次创建和销毁sockets都是有时间消耗的,于是我们创建连接池,用于在不需要使用数据时,将数据保存起来。)
内存池解决了外碎片问题,但是又引入了内碎片。
哈希表是一种数据结构,用来管理数据,方便于搜索,在空间配置器中用于管理内存块。
空间配置器设置成一级和二级是一个互相维护的原则。内存池是有缺陷的:a、内碎片问题得不到解决;b、内存的释放内存没有还给操作系统,导致内存占用的问题,能容忍这些缺点采用二级空间配置器,不能容忍这些缺点采用一级空间配置器。是一种优点大于缺点的设计。
思考:剖析STL核心框架(核心是容器(容器的核心是vector,list,map,set,unordered),空间适配器是干嘛的,仿函数是干嘛的……
浙公网安备 33010602011771号