我已经为堆分配编写了一个c / c内存管理器(重载的new / delete和malloc / realloc / free,基于Doug Lea的malloc但设计为等待免费)并且似乎在碎片方面遇到了一些麻烦 . 是否有任何好的资源可以详细说明通过经理避免分裂的好策略?
请注意,我无法重新排列已经分配的内存(不使用带有GUID的智能指针),并且重新编写系统以使用池而不是堆分配是不可行的 .
谢谢,格兰特
您可能希望从jemalloc(http://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf)获得一些灵感 - 由于其抗碎片功能,此分配器在新Firefox中被明确使用 .
看看像glibc这样的成熟项目是如何做到的 .
一个快速的Google找到this,带有一堆引用 .
2 回答
您可能希望从jemalloc(http://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf)获得一些灵感 - 由于其抗碎片功能,此分配器在新Firefox中被明确使用 .
看看像glibc这样的成熟项目是如何做到的 .
一个快速的Google找到this,带有一堆引用 .