0
我正在嘗試使用boost::singleton_pool進行內存池。我需要它來解決以下問題:增強池單身RequestedSize設置
在我的應用程序中,我偶爾爲固定數量的字節對象分配內存。然後在某個時候我釋放這些(偶爾也會一個接一個)。內存中最多隻有N
(在編譯時設置)分配的對象數。每當其中一個結束它的生命週期時,它就會被釋放。所以我的問題是,鑑於提到的對象名稱是demo_block
,我應該指定RequestedSize
爲N * sizeof(demo_block)
?就像這樣:
struct MyOrderTag{};
typedef boost::singleton_pool<MyOrderTag,sizeof(demo_block) * MaxObjects> MyMemPool;
或者只是單個對象的大小?
struct MyOrderTag{};
typedef boost::singleton_pool<MyOrderTag,sizeof(demo_block)> MyMemPool;
因此,這意味着池將分配儘可能多的空間來容納所有分配的對象的內存?如何限制該大小? –
您可以爲類指定一個分配器。默認情況下,使用默認的新建和刪除,但可以編寫一個限制分配給您的定義值的數量。 –