Использование tcmalloc/jemalloc с настраиваемым менеджером пула памяти
Я хотел бы использовать высокопроизводительный распределитель общего назначения, как jemalloc
/tcmalloc
с пулом памяти. Есть ли руководство для этого? Я не хочу использовать jemalloc
/tcmalloc
в качестве замены для замены malloc
,
У меня есть пул памяти, который использует libarena
и вырезает большую область памяти (2 ГБ). Я хочу создать пул объектов фиксированного размера, как gslice
на этой арене скажем 1 Гб. (как распределитель плит Bonwick) и хочет использовать оставшуюся часть памяти для общего назначения переменного размера. Я бы хотел jemalloc
/tcmalloc
используйте эту область памяти. Это возможно? Любые идеи относительно того, как я могу продолжить? Если есть альтернативная библиотека, я бы тоже хотел об этом услышать.
1 ответ
Это старый вопрос, но, наконец, положительный ответ, по крайней мере, где jemalloc
обеспокоен. поскольку jemalloc
версию 4.0.0, вы можете использовать mallctl
установить зацепки, где выделенные фрагменты получают память, используя arena.<i>.chunk_hooks
интерфейс. Эти хуки хорошо документированы в man-странице jemalloc, включая ряд перекрестных ссылок.
Я не знаю, как любой подобный интерфейс в tcmalloc
; Я не использую это.
Я ответил на аналогичный вопрос совсем недавно; Там также может быть полезная информация.