可能重复:
Code for malloc and free
如果没有,有人可以向我解释malloc()是如何工作的(它使用什么算法/数据结构)。我想将标准库的实现与我自己的malloc()实现进行比较。
答案 0 :(得分:3)
答案 1 :(得分:1)
答案 2 :(得分:1)
规范实施是dlmalloc
:
http://g.oswego.edu/dl/html/malloc.html
任何非纯垃圾的实现都使用相同的基本bin算法,但可能有线程本地缓存,竞技场等可能有助于提高性能但却让它更难理解的东西,所以我只想阅读{{当你想让自己受苦时,请保留其余部分。作为一个主要的加分,dlmalloc
的算法有很好的记录;看到我提供的链接。
答案 3 :(得分:0)
标准库函数是按平台实现的,因此任何给定平台的实现都可以采用多种方法中的任何一种。要搜索的术语包括:固定块分配器,伙伴块分配器,slab分配器等。