c 實現簡易記憶體物件池

2021-10-25 21:01:04 字數 846 閱讀 2338

目的

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...