Proud::CLookasideAllocator 클래스 참조abstract

Public 멤버 함수

virtual void * Alloc (size_t size)=0
 
virtual void Free (void *ptr)=0
 
virtual int DebugCheckConsistency ()=0
 

정적 Public 멤버 함수

static PROUD_API
CLookasideAllocator
New (const CFastHeapSettings &settings=CFastHeapSettings())
 

상세한 설명

매우 빠른 메모리 할당,해제를 하지만 몇 가지 제약이 있다.

  • 항상 같은 크기의 메모리만 할당할 수 있다.
  • 이걸로 할당한 객체는 전역 변수이어서는 안된다. 즉 할당한 객체의 폐기 시간보다 이 allocator의 폐기 시간보다 앞이어야 한다.

특징

  • 내부적으로 memory page 단위의 메모리 블럭을 미리 할당하고 사용한다. 따라서 너무 많은 갯수의 CLookasideAllocator 인스턴스를 만드는 것은 권장하지 않는다.
  • memory page는 VirtualAlloc으로 할당된다. 따라서 internal fragmentation을 만들지 않으므로 win32 working set의 크기도 절감하는 효과를 준다.

멤버 함수 문서화

virtual void* Proud::CLookasideAllocator::Alloc ( size_t  size)
pure virtual

메모리를 할당합니다.

virtual int Proud::CLookasideAllocator::DebugCheckConsistency ( )
pure virtual

기본적으로 thread safe입니다. 하지만 thread unsafe를 해서 실행 가속화를 하려면 thread unsafe하게 옵션을 바꿀 수 있습니다.

  • 주의해서 사용하셔야 합니다.
virtual void Proud::CLookasideAllocator::Free ( void *  ptr)
pure virtual

할당했던 메모리를 해제합니다.

static PROUD_API CLookasideAllocator* Proud::CLookasideAllocator::New ( const CFastHeapSettings settings = CFastHeapSettings())
static

새 Lookaside allocator를 생성합니다.

매개변수
settings초기 속성을 설정할 수 있습니다. 생략 가능한 파라메터입니다.