K&R 存储分配器说明
K&R Storage Allocator clarification
我对 Kernighan 中的存储分配器有一些疑问 - Ritchie:The C Programming Language - The Unix System Interface,第 185-189 页?
第 186 页上说:
The search for a free block of adequate size begins at the point (freep) where the last block was found; this strategy helps keep the list homogeneous.
如我所见,我们不一定需要 freep,我们可以从 base 开始每次搜索。
- 这个策略如何保持列表的同质性?
- 为什么我们需要 freep?它会减少搜索时间吗? (我的意思是,列表中只有空闲块,所以我们可以从任何地方开始,对吧?)
如果你总是从头开始,你会耗尽较大块列表的开头(因为它们更容易满足请求)。因此,该列表将从许多较小的块开始,对于中等或较大尺寸的请求将不得不遍历更多列表才能找到合适的内容。
我对 Kernighan 中的存储分配器有一些疑问 - Ritchie:The C Programming Language - The Unix System Interface,第 185-189 页?
第 186 页上说:
The search for a free block of adequate size begins at the point (freep) where the last block was found; this strategy helps keep the list homogeneous.
如我所见,我们不一定需要 freep,我们可以从 base 开始每次搜索。
- 这个策略如何保持列表的同质性?
- 为什么我们需要 freep?它会减少搜索时间吗? (我的意思是,列表中只有空闲块,所以我们可以从任何地方开始,对吧?)
如果你总是从头开始,你会耗尽较大块列表的开头(因为它们更容易满足请求)。因此,该列表将从许多较小的块开始,对于中等或较大尺寸的请求将不得不遍历更多列表才能找到合适的内容。