【发布时间】:2017-10-20 12:41:39
【问题描述】:
我正在编写一个由位图(uint8_t 数组)支持的内存分配器,当分配请求出现时,我从 0 到 n 位顺序扫描位图并搜索可以满足请求的空间. (位 1 表示使用的页面,0 表示页面是空闲的) 现在不是一次一位地搜索空间,有没有技术可以更快地扫描整个数组?即如果对 3 页内存的请求到达,我想一次性在数组中搜索000 模式,理想情况下不循环?
PS:我没有使用std::bitset,因为它不适用于我正在使用的编译器。 AFAIK 也不允许我搜索多个位。
编辑:位被打包到一个字节中,uint8_t 有 8 个页面(每位 1 个)在其中编码。
【问题讨论】:
标签: c++ c++11 memory-management bit-manipulation dynamic-allocation