目的
1、防止記憶體頻繁 遊走在new和delete中被折磨;
2、減少記憶體碎片的產生,同時稍稍的提高下效能。
思路
1、外界有記憶體需求的時候,就去memory_pool獲取;
2、外界用完某塊記憶體之後,就歸還memory_pool;
3、memory_pool 這個類來管理記憶體。
**
#ifndef memory_pool_h__
#define memory_pool_h__
#include
#include
template
<
class
t>
class
memory_pool
~memory_pool()
std::shared_ptr
allocate()
else
return item;
}void
release
(const std::shared_ptr
& item)
void
clear()
intsize()
private
: std::deque> free_items_;};
#endif
簡單示例
memory_pool memory_pool_;
void
test()
簡易記憶體池(物件池)的實現
pragma once include include include 物件池的實現 針對於乙個知道型別的物件 我們通過物件池 來比較普通向記憶體中申請空間 和我們直接向我們的記憶體池中申請空間的效能對比 template class t,size t initnum 10000 設定記憶體池中取出...
簡易記憶體池的實現
1.記憶體池的引入 實際運用當中,如果我們需要申請一塊空間,我們一般都會new一塊空間 在c語言裡會用到malloc 我們知道他們兩個的共同點就是在堆上申請空間,堆上的空間會比棧上的大一些 在windows的vs環境下,棧的預設大小是1mb,但是可以自己調整 所以我們可以自己去申請自己需要的大小 當...
簡易記憶體池的實現
參考 一書中的條款10 如果寫了operator new就要同時寫operator delete 寫了乙個簡易的記憶體池,說白了就是事先分配一塊記憶體空間作為記憶體池,每次new物件的時候,直接從這裡取記憶體,delete的時候將記憶體 到記憶體池中,很簡單,廢話就不說了,直接看 include s...