2010-04-03 2 views
5

작은 개체를 처리 할 때 STL에서 사용할 할당자를 사용할 수 있습니다. 나는 이미 Boost에서 풀 할당자를 가지고 놀았지만 아무런 성능 향상을 얻지 못했다. (실제로 어떤 경우에는 상당한 성능 저하가 있었다.)C++ STL 준수 할당 자

답변

3

당신은 어떤 컴파일러를 사용했는지는 말하지 않았지만 미리 만들어진 많은 할당 자들이있을 것입니다. 이 gcc 4.2.1와 Mac에서입니다 :

~$ find /usr/include/c++/4.2.1/ -name "*allocator*" 
/usr/include/c++/4.2.1/bits/allocator.h 
/usr/include/c++/4.2.1/ext/array_allocator.h 
/usr/include/c++/4.2.1/ext/bitmap_allocator.h 
/usr/include/c++/4.2.1/ext/debug_allocator.h 
/usr/include/c++/4.2.1/ext/malloc_allocator.h 
/usr/include/c++/4.2.1/ext/mt_allocator.h 
/usr/include/c++/4.2.1/ext/new_allocator.h 
/usr/include/c++/4.2.1/ext/pool_allocator.h 
/usr/include/c++/4.2.1/ext/throw_allocator.h 

여기 또한 자신을 구축하는 방법에 대해 이야기 BitMagic 프로젝트 페이지에 대한 링크입니다. 또한 Loki library (및 book 너무 작은 개체 할당 자도 확인하십시오.

1

Microsoft Visual C++ 표준 라이브러리 구현은 적어도 릴리스 될 예정인 Visual Studio 2010에서 노드 기반 컨테이너에 대해 several proprietary allocators을 제공합니다.

1

특정 요구에 맞는 할당자가 필요합니다. STL 제네릭 할당자는 매우 다양한 상황에 가장 적합하며 새로운 할당자를 원한다면 특정 요구 사항을 프로파일 링하고 이해해야합니다. 이 객체를 넣을 컨테이너에 대해 좀 더 구체적으로 설명해야합니다.