跳转到内容

自由表

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是自由表当前版本,由GUT412454留言 | 贡献编辑于2022年3月22日 (二) 11:58 (正文超过200字,去掉小作品模板)。这个网址是本页该版本的固定链接。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)

自由表(英語:free list[1]是一种用来实现特定动态内存分配方案的数据结构,也称自由列表。自由表的核心原理是将若干未分配的内存块用链表连接起来,将未分配区域的第一个作为指向下一个未分配区域的指针使用。自由表非常适合用来实现内存池,因为内存池中对象的大小都是相同的。

用自由表实现内存的分配和回收非常简单:回收内存时只需将内存块链入自由表;分配时也只需从自由表的一端取下即可直接使用。如果内存块的大小不一,则分配前还需要在自由表中搜索足够大的内存块,可能有一定的额外消耗。

因为自由表使用了链表结构,所以也继承了它的劣势:访问局部性低下,难以利用缓存

另见

[编辑]

参考资料

[编辑]
  1. ^ freelist - 自由表. 國家教育研究院雙語詞彙、學術名詞暨辭書資訊網. [2018-07-13]. (原始内容存档于2018-09-10).