2010-04-03 17 views
5

Quali allocatori sono disponibili per l'uso con STL quando si tratta di oggetti di piccole dimensioni. Ho già provato a giocare con gli allocatori di pool di Boost, ma non ho ottenuto alcun miglioramento delle prestazioni (in realtà, in alcuni casi, c'era un notevole degrado).Allocatori conformi a STL C++

risposta

3

Non hai detto quale compilatore usi, ma probabilmente viene fornito con una serie di allocatori predefiniti. Questo è su un Mac con gcc 4.2.1:

~$ 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 

Ecco anche un link alla pagina del progetto BitMagic che parla di come costruire il proprio. Controlla anche l'allocatore di oggetti di piccole dimensioni nel Loki library (e anche nello book).

1

L'implementazione della libreria standard Microsoft Visual C++ fornisce several proprietary allocators per i contenitori basati su nodo (almeno fino al prossimo rilascio di Visual Studio 2010).

1

È necessario un allocatore adatto alle proprie esigenze specifiche. L'allocatore generico STL è il migliore per l'enorme varietà di circostanze e, se si desidera un nuovo allocatore, è necessario definire e comprendere i requisiti specifici. Dovrai essere più specifico sul contenitore in cui mettere questi oggetti.