就像我常說的:
Never Repeat Yourself,你永遠不可能短期寫出別人久經考驗的代碼。
因此在GitHub上找了一下這個用C++ 模板實現的內存池項目。git
若是有興趣探究內存池的實現方式和結構,請看http://www.codeproject.com/Articles/15527/C-Memory-Poolgithub
在這裏我放上本身Fork的源碼Git
https://github.com/ImNaohaing/MemoryPool算法
固然內存池是一種模型而已,具體實現靠的是C++標準庫)sgi(Silicon Graphics Computer System,Inc) 版本)中引入的內存配置器(allocator)實現的.數據結構
這場革命來的太晚。
C++官方wiki對內存配置器的描述http://cplusplus.wikidot.com/cn:allocator
這是分別使用STL默認配置器,做者寫的Memory Pool 和 STL::Vector(最經常使用)的性能比較:
性能
測試文件在項目中
測試
test.cpp
測試內容大意爲:
用內存分配器以 250000次/循環
向數據結構(默認堆,Memory Pool,std::vector)中添加並刪除 int值