分配器的实现

分配器分配最简单的实现方式,就是采用一个大的字节数组,还有一个指针p,初始时指向这个数组的第一个字节,假如现在需要分配size字节,malloc将p的当前值保存到栈中,将p增加size后,返回p,供下次申请分配时使用,free函数只是简单的返回到调用函数里面,而不做其他任何事情。
采用这种思路设置一个简单的分配器是一种极端的情况。因为每个malloc free 只执行很少量的指令,吞吐量会极好。然而,分配器不再重复使用块,存储器利用率很差,故为了平衡吞吐率和存储器使用率,需结合以下几点来设计分配器:
1 free返回的空闲块如何管理和再利用
2 如何选择一个合适的空闲块来放置一个新分配的块
3 新分配块在空闲块之后,整个存储块出现断断续续的空闲,如何计算空闲块
相关阅读:
分配器 要求 性能指标