就像我常说的:
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值