首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libc malloc与linux内核好友分配器

libc malloc与linux内核好友分配器
EN

Stack Overflow用户
提问于 2019-09-18 16:15:37
回答 1查看 440关注 0票数 0

malloc对linux内核中的内部碎片感到担忧吗?例如,当我想要分配5页时,malloc会把大小增加到2: 5->8,以避免内核中的内部碎片,因为linux内核使用好友系统作为页面分配器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-18 17:12:47

至少对于glibc来说,它并不真正关心内核中的碎片问题。它主要是一个“最适合”的分配器,除了非常小或非常大的分配。下面是glibc的“malloc.c”顶部评论的摘录:

  • 为什么要用这个malloc? 这不是有史以来最快、最节省空间、最可移植或最可调的malloc。然而,它是最快的,同时也是最节省空间,便携和可调的。在这些因素之间保持一致的平衡会为苹果机密集型项目提供一个良好的通用分配程序。这些算法的主要特点是:
代码语言:javascript
复制
- For large (>= 512 bytes) requests, it is a pure best-fit allocator,   with ties normally decided via FIFO (i.e. least recently used).
- For small (<= 64 bytes by default) requests, it is a caching   allocator, that maintains pools of quickly recycled chunks.
- In between, and for combinations of large and small requests, it does   the best it can trying to meet both goals at once.
- For very large requests (>= 128KB by default), it relies on system   memory mapping facilities, if supported.

有关更长但稍微过时的高级描述,请参见http://gee.cs.oswego.edu/dl/html/malloc.html

glibc malloc实现可以使用mallopt函数或各种环境变量来设置各种参数,如手册页mallopt(3)所述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57996975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档