本文共 7248 字,大约阅读时间需要 24 分钟。
为了减少内存碎片,实现了一个简单的快速内存分配器。
优点: 无内存碎片 O(1)的分配算法。 O(1)的回收算法。 缺点: 底层仍旧使用了malloc。进一步考虑采用mmap 内存大小不可动态扩展。考虑是否支持动态扩展 分配的每快内存都是固定大小。考虑是否支持不同大小的块。 基本算法: 采用链表管理可用内存与已使用内存。 分配内存时候,从freelist的头取得一个可用块。此块被放到usedlist中。 回收的时候,从usedlist中将回收的块放回freelist。 这两个操作都可以在O(1)内实现。 具体代码如下:
转载地址:http://itgxi.baihongyu.com/