Поддержка пользовательских аллокаторов

Пользовательские аллокаторы могут быть полезны для отслеживания потребления памяти, профилирования кучи и 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