2011-05-28 83 views
2

我試圖找到一個C++的內存管理庫,它將從預分配的內存塊中分配給我,以便初始化它。完成後,我將關閉分配器(和對象)並釋放預分配的塊管理預分配塊的內存管理器

做這樣的事情已經存在了嗎?

+1

升壓池分配器? – dcousens 2011-05-28 02:05:40

+0

它似乎只適用於相同大小的對象 – lurscher 2011-05-28 02:10:56

+0

也許有點偏離主題,我想任何分配器都很容易支持這一點,只是當內存不足時爲用戶提供回調以提供內存塊。 – 2011-05-28 02:39:25

回答

1

有很多這樣的分配器。 dlmalloc是最流行的之一(它對我們來說效果很好)。 Doug Lea有malloc.cmalloc.h可供下載,並且還有其原始代碼的幾個衍生產品可能以更方便的方式打包,如ptmalloc

+0

感謝,ptmalloc自述文件說他們的nothreads版本不合順序,這是一個遺憾,因爲我希望使用一個假定單線程的自定義內存管理器(無鎖定開銷) – lurscher 2011-05-28 02:19:35

+0

@lurscher基本dlmalloc(Doug Lea's malloc.c)可能是你想要的,然後;其線程鎖定代碼更容易刪除。 – Crashworks 2011-05-28 02:55:48