기존에 작업 하던 것을 다시 갈아 엎고 구조를 다시 잡아 작업을 하고 있습니다. 그래서 이쪽 카테고리 글 포스팅 하기가 힘드네요.

새로 구조를 잡으면서 부스트 라이브러리를 사용해보고 있습니다. 풀(pool)을 적용해보려고 합니다. 밑은 boost pool에 대해 구글링 하면서 참고해 만든 매크로입니다.

#define ImplementBPool(class) boost::pool<> class::bpool(sizeof(class));
#define DeclareBPool \
void* operator new(size_t s) \
{ \
	return bpool.malloc(); \
} \
void operator delete(void *p) \
{ \
	bpool.free(p); \
} \
private: \
	static boost::pool<> bpool; \

DeclareBPool을 풀링을 사용할 클래스 헤더에 선언하고, ImplementBPool을 cpp 파일에 클래스 이름과 같이 적어주면 부스트를 이용한 풀링이 적용되도록 했죠. 템플릿을 이용할까도 했지만, 어차피 본문에서 클래스 크기를 알려주어야 하기에 그냥 매크르로로 작성 했습니다.

다른 분들은 어떻게 사용하시나요? 부스트 풀 사용기나 좋은 의견 남겨주시면 감사하겠습니다.

+ Recent posts