主题:【请教】自建memory pool,请问如何管理内存碎片 -- 东方射日

共:💬6 🌺2 新:
全看分页树展 · 主题 跟帖
家园 一点想法

如果需要分派的内存符合一些条件

1:可以大致知道每次分配大约有多少

2:分配的大小差别不大

3:内存池容纳的片数不算太多

我觉得可以考虑这样处理

预先把内存池按照一定大小分配成N块,每块大致是常见的大小略有富裕,new的时候直接返回一块。如果已经用尽池内的,可以考率扩大池。内存回收的时候也暂时不交OS回收,而是下次分给别的应用。

这样不需要重载reference和derefrence操作,如果需要的话可考虑重载sizeof或者要越界检查的操作。

当然如果有频繁的小内存需要分配,可能这个办法不好。

在做游戏么?不知道什么类型的,说不定会买一款支持一下,赫赫

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河