2010-04-03 17 views
5

Küçük nesnelerle uğraşırken STL ile kullanım için allocators var. Boost'dan havuz ayırıcıları ile çalışmayı denedim, ancak performans artışı olmadı (aslında bazı durumlarda önemli ölçüde bozulma oldu).C++ STL uyumlu Allocators

cevap

3

Hangi derleyiciyi kullandığınızı söylemediniz, ancak büyük olasılıkla önceden oluşturulmuş bir grup ayırıcıyla birlikte gelir. Bu gcc 4.2.1 ile Mac üzerinde geçerli:

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

İşte Ayrıca kendi inşa etmek nasıl bahsediyor BitMagic proje sayfasına bir bağlantı. Ayrıca Loki library (ve book da) içinde küçük nesne ayırıcılara bakın.

1

Microsoft Visual C++ standart kitaplık uygulaması, düğüm tabanlı kapsayıcılar için en az several proprietary allocators sağlar (en azından yakında çıkacak olan Visual Studio 2010'dan itibaren).

1

Özel gereksinimleriniz için doğru olan bir ayırıcıya ihtiyacınız var. STL genel ayrıştırıcısı, çok çeşitli koşullar için en iyisidir ve yeni bir ayırıcı istiyorsanız, özel gereksinimlerinizi anlamalı ve anlamanız gerekir. Bu nesneleri hangi kapsayıcıya yerleştireceğiniz konusunda daha spesifik olmanız gerekir.