BoostPool의 템플릿 버전입니다..
그냥 상속받아서 new delete 하시면 됨니다..
BoostPool도 클래스와 같은 객체에 사용하는 objectPool과
쓰레드에 세이프한 singleton_pool이 있는데.
그냥 상속받아서 new delete 하시면 됨니다..
#pragma once #include <boost/pool/pool.hpp> template<class T> class CBoostPool { public: void* operator new(size_t _size) { return m_bpool.malloc(); } void operator delete(void* _p) { m_bpool.free(_p); } protected: static boost::pool<> m_bpool; }; template<class T> boost::pool<> CBoostPool<T>::m_bpool(sizeof(T)); class CTest : public CBoostPool<CTest> { public: wchar_t m_szName[64]; }; void main() { CTest* ptr = new CTest; }
BoostPool도 클래스와 같은 객체에 사용하는 objectPool과
쓰레드에 세이프한 singleton_pool이 있는데.
속도면에서는 pool이 월등 하게 나왔다..
objectPool은 오히려 pool을 사용하지 않았을때보다도 느릴때도 많았고.
singleton_pool 같은경우엔 pool보다는 느리지만 그래도 안쓸때보다는 훨씬 빨랐고
쓰레드에 세이프하다는데 의미를 두자 -_-;
'C..C++....' 카테고리의 다른 글
OPENSSL visual studio 에서 사용하기.. (0) | 2012.03.20 |
---|---|
Console 윈도우에서 종료버튼 disable시키기. (0) | 2011.10.18 |
error LNK 2005 xxxx이(가) MSVCPRT(D).lib 혹은 LIBCPMT(D).lib 에 이미 정의되어 있습니다.. 오류날때 대처방법 (0) | 2011.08.02 |
문자열 사용.. (0) | 2011.07.06 |
람다(Lambda) 활용하기.! (0) | 2011.06.27 |