Поддержка пользовательских аллокаторов
Пользовательские аллокаторы могут быть полезны для отслеживания потребления памяти, профилирования кучи и CPU, а также для повышения общей производительности.
Reindexer поддерживает TCMalloc (который также является частью GPerfTools) и JEMalloc.
Их поддержка включается при сборке c помощью опций cmake: ENABLE_TCMALLOC
и ENABLE_JEMALLOC
.
При сборке Standalone
сервера из исходных кодов доступные аллокаторы будут обнаружены и использованы автоматически.
Приоритет в данном случае отдаётся TCMalloc
.
При сборке приложения из готовых пакетов с помощью go:generate
Reindexer также поддерживает TCMalloc
.
Но ни одна из библиотек TCMalloc
не будет подключена автоматически.
Для принудительного использования библиотек аллокаторов необходимо использовать LDPRELOAD
:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtcmalloc_and_profiler.so ./my_executable