gpt4 book ai didi

c - 编写我自己的内存管理器

转载 作者:行者123 更新时间:2023-11-30 18:32:20 26 4
gpt4 key购买 nike

我想分配一些巨大的动态内存,然后为其编写自己的内存管理器。即当我的代码需要内存时,我会从这个内存池中分配内存。我希望算法能够处理内部和外部碎片。哪种算法最有效?

最佳答案

对于这些标准,我会选择 Doug Lea 的 http://g.oswego.edu/dl/html/malloc.html ,它维护每个不同大小的存储 block 的集合 - 可以快速找到所需的大小,并且重用相同大小的 block 可以减少碎片。请注意(http://entland.homelinux.com/blog/2008/08/19/practical-efficient-memory-management/),这没有针对多线程进行调整。

如果我自己写一个,我会选择 http://en.wikipedia.org/wiki/Buddy_memory_allocation因为它速度快并且在用户空间中不常用(不常用是因为它限制了可能的 block 大小,导致内部碎片)。事实上,我不久前就这么做了 - http://www.mcdowella.demon.co.uk/buddy.html

关于c - 编写我自己的内存管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14888555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com