2015-06-30 17 views
0

我有一個內存分配需要,我將需要一堆整數給定的「操作」。C++分配器,在每個「操作」後重置

這個「操作」持續幾微秒,幾乎總是我不需要任何內存。假設有70%的時間。

剩下的時間,我需要一個或兩個,有時更多。我知道這個數字永遠不會超過32768(2^15)。

我應該先分配128KB的內存,然後保留一個指向頭部的指針。只要我的操作結束,我將指針重置爲0.

這是一個緩存友好的分配器?

+3

*「只要我的操作結束,我重置指針爲0。」* - 你的意思是你的操作的所有調用都已經完成了,你會'刪除[]'int's?如果是的話 - 是的,這是緩存友好的。反覆分配和釋放內存將不太好。使用一些堆棧內存並且只有在證明不足時才使用動態內存纔是另一種選擇。使用相同內存的 –

+1

對緩存友好。 –

回答

0

將一次可以使用的最大內存分配給指針,並嘗試爲整個程序使用相同的內存。正如你所說,你需要最多2^15,所以最初分配這個數額的指針,並使用相同的