채팅 서버에서 사용하는 Packet은 메시지를 전송하기 전에 할당하므로 매우 많이 동적할당하게 된다.

따라서 ObjectPool을 이용해 새로 할당받고 사용하지 않으면 반납한 후, 안에 저장중인 Packet을 대여해준다.

 

static ObjectPool<Packet> _objectPool; // ObjectPool을 사용하여 Packet을 할당

 

이처럼 static으로 선언하여 Packet 클래스가 전역으로 objectPool을 관리하도록 해준다.

 

// Packet을 할당
static Packet* Alloc(); 
// Packet을 반납
void Free();

 

Alloc을 이용해 Packet을 할당받고 Free를 이용해 반납한다.


✅ 사용방법

Packet* packet = Packet::Alloc(); // packet 할당
... // packet에 데이터담음
packet->Free(); // packet 반납

 

 

+ Recent posts