最近在学习c++程序性能优化,读到内存池部分。自己动手写了一个,小小测试了一下应该没有问题。

内存块MemoryBlock声明文件

 

MemoryBlock.h

内存池MemoryPool声明文件

 

 

MemoryPool.h

内存池MemoryPool实现文件

 

 

MemoryPool.cpp

 

Test.cpp

#include "MemoryPool.h"
#include 
"time.h"

void performance_old()
{
    clock_t start,stop;
    start 
= clock();//开始时间
    int i,b=0;
    
for(i=0;i<=100000;i++)
    {
      
int* p=new int;
    }

    cout
<<"Without MemoryPool:"<<(double) (clock()-start)<<"ms"<<endl;//输出
}

void memory()
{
    clock_t start;
    start 
= clock();//开始时间
    MemoryPool mp(sizeof(int),10000,500);
    
int i=0;
    
for(i=0;i<=100000;i++)
    {
      
int* p=(int*)mp.Alloc();
    }
  
    cout
<<"Using MemoryPool:"<<(double)(clock()-start)<<"ms";//输出
}
int main()
{
    performance_old();
    memory();
//内存池
    system("pause");
        
return 0;
}