C语言 为什么免费列表没有排序?



我研究malloc,sbrk和自由列表管理。现在我想知道为什么免费列表没有以某种方式排序,似乎它可以从搜索树而不是普通链表中受益。我在读的书中的样子只是一个列表,其中包含任意大小的免费内存块。如果我们保持列表排序,那么第一个适合也将是最合适的,这似乎微不足道。

我确定以前已经考虑过这一点,但为什么没有这样做?

该部分中介绍的大多数算法主要旨在减少碎片和搜索成本。在"其他想法"部分下,他在介绍第一次适合、最合适、最差适合等时提到了他的推理......

One major problem with many of the approaches described above is their
lack of scaling. Specifically, searching lists can be quite slow. Thus,
advanced allocators use more complex data structures to address these
costs, trading simplicity for performance. Examples include balanced binary
trees, splay trees, or partially-ordered trees [W+95].

http://pages.cs.wisc.edu/~remzi/OSTEP/vm-freespace.pdf

相关内容

  • 没有找到相关文章

最新更新