Средства выделения приспосабливания STL C++

Какие средства выделения доступны там для использования с STL при контакте с маленькими объектами. Я уже попытался играть со средствами выделения пула от Повышения, но не получил повышения производительности (на самом деле, в некоторых случаях была значительная неисправность).

5
задан myahya 3 April 2010 в 20:17
поделиться

3 ответа

Вы не сказали, какой компилятор вы используете, но, вероятно, он поставляется с кучей предварительно встроенных распределителей. Это на Mac с 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

Вот ссылка на страницу проекта BitMagic, где рассказывается о том, как создать свой собственный. Также посмотрите small object allocator в библиотеке Loki (и в книге тоже).

3
ответ дан 14 December 2019 в 19:08
поделиться

Вам нужен аллокатор, подходящий для ваших конкретных нужд. Общий аллокатор STL является лучшим для огромного разнообразия обстоятельств, и если вам нужен новый аллокатор, вам нужно будет составить профиль и понять ваши конкретные требования. Вам придется уточнить, в какой контейнер вы собираетесь поместить эти объекты.

1
ответ дан 14 December 2019 в 19:08
поделиться

Реализация стандартной библиотеки Microsoft Visual C ++ предоставляет несколько проприетарных распределителей для узлов на основе контейнеров (по крайней мере, в Visual Studio 2010, который скоро будет выпущен).

1
ответ дан 14 December 2019 в 19:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: