LINUX.ORG.RU

аллокаторы памяти


0

2

Есть какие-нибудь развитые C/C++ библиотеки с аллокаторами памяти? Достало уже что ни крупный проект, то свой велосипед, при этом один хрен используется какая-нибудь из известных стратегий, редко что-нибудь мега хитрое и заточенное под проект.

интересен опыт использования или ссылки на статьи где рассказывается об опыте использования таких библиотек.

★★★

Ответ на: комментарий от gizzka

может и то, я про когда попытался нагуглить аллокаторы прочитал что в boost примеры аллокаторов.

охота услышать про опыт использования.

vasaka ★★★
() автор топика

Применение специализированного аллокатора чрезвычайно сильно зависит от проекта, поэтому советовать сложно. Мы используем boost::pool<> - вполне хорошо себя ведет. В качестве эксперимента использовали даже __gnu_cxx::__mt_alloc :) Для общих случаев адекватнее стандартного new я не встречал. Если найдете - делитесь.

sieq
()

Достало уже что ни крупный проект, то свой велосипед, при этом один хрен используется какая-нибудь из известных стратегий, редко что-нибудь мега хитрое и заточенное под проект.

ну и написали бы для себя уже такую либу, по материалам предыдущих проектов, не? или Вы всё время с чистого листа проекты начинаете?

shty ★★★★★
()
Ответ на: комментарий от shty

>или Вы всё время с чистого листа проекты начинаете.

мне достаются проекты которым уже лет по 10 и больше, в каждом свои велосипеды, при этом похожие.

vasaka ★★★
() автор топика
Ответ на: комментарий от sieq

>Для общих случаев адекватнее стандартного new я не встречал. Если найдете - делитесь.

мне как раз для специальных случаев надо. какую-нибудь библиотеку с набором аллокаторов для шаблонных ситуаций.

vasaka ★★★
() автор топика
Ответ на: комментарий от vasaka

>или Вы всё время с чистого листа проекты начинаете.

мне достаются проекты которым уже лет по 10 и больше, в каждом свои велосипеды, при этом похожие.

тогда присоединюсь к коллегам, я бы выбрал что-нибудь из boost

shty ★★★★★
()

Есть еще хороший аллокатор tcmalloc, может работать как замена обычного(например через LD_PRELOAD). Работает очень быстро и масштабируемо по нитям (нет лишних блокировок), но память системе отдает только на выходе приложения, т.е. твое приложение всегда будет занимать столько, сколько занимало в пике потребления. http://code.google.com/p/google-perftools/

YesSSS ★★★
()
Ответ на: комментарий от nanonymous

«What Every Programmer Should Know About Memory», Ulrich Drepper. Не совсем-таки про распределение памяти, но почитать однозначно стоит.

sieq
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.