在很多情况下, 你需要new一些对象, 使用很短时间后, 就delete掉. 频繁的new和delete就造成了开销.
所以使用对象池.(这与线程池, 内存池的作用都是一样的).
所以使用对象池.(这与线程池, 内存池的作用都是一样的).
实现原理: 使用一个列表来保存使用完的对象(而不是delete掉). 如果再次需要使用对象, 就从空闲列表中取出(而不是new出来). 如果空闲列表为空, 这时候才new新的对象.
// 使用
#include "stdafx.h"
class STTest
{
public:
STTest()
{
memset(n, 0x00, sizeof(int) * 256);
}
~STTest(){}
void Release()
{
memset(n, 0x02, sizeof(int) * 256);
}
int n[256];
bool ObjectPoolFind(unsigned long lData)
{
return (n[0] == lData);
}
};
int _tmain(int argc, _TCHAR* argv[])
{
CHYObjectPool<STTest> opSTTest;
STTest* pSTTest = 0;
int i = 0;
int nCount = 60;
for(i = 0; i < nCount; ++i)
{
pSTTest = opSTTest.GetF