c - K&R 存储分配器说明
问题描述
我对 Kernighan - Ritchie: The C Programming Language - The Unix System Interface, page 185-189 中的存储分配器有一些疑问?
它在第 186 页上说:
对足够大小的空闲块的搜索从找到最后一个块的点 (freep) 开始;这种策略有助于保持列表的同质性。
如我所见,我们不一定需要freep,我们可以从base开始每次搜索。
- 这种策略如何保持列表的同质性?
- 为什么我们需要freep?它会减少搜索时间吗?(我的意思是,列表中只有空闲块,所以我们可以从任何地方开始,对吧?)
解决方案
如果您总是从头开始,您将排空较大块列表的开头(因为它们更容易满足请求)。所以列表将从许多较小的块开始,对于中等或更大大小的请求将不得不遍历更多的列表才能找到合适的东西。
推荐阅读
- lua - 如何从 Tarantool 中的随机元组或数组中获取哈希?
- flutter - Flutter TextFieldInput 值在 setState 方法后未更新
- javascript - 如何为导航栏构建悬停下拉导航?
- javascript - 从 http 响应中获取原始 url
- python - 编写脚本以仅使用基本数学函数在 SVG 中渲染线框球体?
- pandas - 从熊猫的网址中读取_csv
- spark-ar-studio - 找不到模块“场景”或其对应的类型声明 Spark AR
- angular - REST 查询字符串参数 NaN 角度
- java - 在 Junit mockMVC 中模拟空对象
- typescript - 如何在页面刷新时正确水合 NextJS 中的 Redux 状态?