DraculaW

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  19 随笔 :: 0 文章 :: 7 评论 :: 0 Trackbacks
内存分配的两种方式
UNIX System V的malloc使用的是 first fit 为此 我一直觉得很奇怪 为啥 为啥 有best不用 为啥要用那个first 奇怪
为此我傻瓜了好久

今天 项目空闲时 想明白了 呵呵
因为 我们不一定能找到最适合的大小的内存 可能每次还都是会有些碎片的
如果使用best fit 万一每次都没有找到的话 那么每次产生的碎片都是最小的 这样的碎片可能对以后都没有什么用处了
而如果使用first fit 就不会每次都产生最小的碎片 而是产生的碎片可能比较大 下次申请的时候  可能这么段刚好给它用了 完美

而且还有效率的考虑 如果4G的内存 每次分配都遍历一次 那么多次分配 速度可能就太差了 而first就没有这个问题


posted on 2007-11-21 22:38 DraculaW 阅读(1884) 评论(1)  编辑 收藏 引用

评论

# re: Best Fit与 First Fit 2008-07-10 19:18 IAC002
应该只是一个效率的考虑吧。如果从碎片上讲的话,malloc之后总有mfree的,这样来看,best fit肯定比first fit好,如果逻辑上忘了mfree的话,会误解的。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理