【发布时间】:2010-09-18 16:33:41
【问题描述】:
我正在寻找一个堆管理器的想法来处理非常具体的情况:大量非常小的分配,每个分配范围从 12 到 64 字节。任何更大的东西,我都会传递给常规的堆管理器,所以只需要处理小块。只需要 4 字节对齐。
我主要担心的是
- 开销。常规的 libc 堆通常会将分配四舍五入为 16 字节的倍数,然后添加另一个 16 字节标头 - 这意味着 20 字节分配的开销超过 50%,这很糟糕。
- 性能
一个有用的方面是 Lua(它是这个堆的用户)会在调用 free() 时告诉你它正在释放的块的大小 - 这可能会启用某些优化。
我将发布我目前的方法,它工作正常,但如果可能的话,我想改进它。有什么想法吗?
【问题讨论】:
标签: c performance memory-management lua heap-memory