The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступна библиотека управления памятью jemalloc 5.3.1

14.04.2026 11:33 (MSK)

Спустя 4 года после публикации прошлого обновления доступен релиз библиотеки управления памятью jemalloc 5.3.1, предлагающей альтернативную реализацию функций malloc, оптимизированную для снижения фрагментации и работы на многопроцессорных системах. Для решения проблем с блокировками на многоядерных системах в jemalloc для каждого ядра CPU используется своя изолированная область распределения памяти, что позволяет добиться линейной масштабируемости при росте числа потоков.

В июне 2025 года автор проекта прекратил сопровождение и перевёл репозиторий jemalloc в архивный режим, но месяц назад разработку возобновила компания Meta, применяющая jemalloc в своей инфраструктуре. Изначально библиотека была разработана для FreeBSD и используется в данной ОС по умолчанию с 2005 года. Код библиотеки написан на Си и распространяется под лицензией BSD.

Среди изменений:

  • Реализована функция pvalloc, которая может оказаться полезной при замене аллокатора памяти libc.
  • В отладочных сборках включён режим обнаружения двойного вызова функции free(). Для настройки размера стека, в рамках которого выполняется сканирование, добавлен параметр debug_double_free_max_scan.
  • Добавлена сборочная опция "--enable-pageid" для выставления тегов при маппинге памяти, используя prctl с флагом PR_SET_VMA. После включения маппинг можно отслеживать через /proc/<pid>/maps.
  • Добавлен параметр "prof_bt_max", позволяющая выставить максимальную глубину стека для профилирования.
  • Добавлена сборочная опция "--enable-force-getenv" для использования в коде обычной функции getenv() вместо защищённой secure_getenv().
  • Добавлена сборочная опция "--disable-dss" для отключения использования функции sbrk().
  • Добавлен параметр "tcache_ncached_max" для ограничения числа элементов в кэше потоков.
  • Добавлен параметр "calloc_madvise_threshold" для настройки использования механизма ядра madvise или функции memset для обнуления памяти, выделяемой через функцию calloc.
  • Добавлена сборочная опция "--disable-user-config" для отключения загрузки настроек из файла /etc/malloc.conf или переменной окружения MALLOC_CONF.
  • Добавлен параметр "process_madvise_max_batch" для ограничения числа блоков памяти для каждой batch-операции madvise.
  • Добавлен параметр "disable_large_size_classes" для отключения нового алгоритма расчёта размера выделяемой памяти, снижающего накладные расходы при выделении блоков, размером более 4 страниц памяти.
  • В утилиту mallctl добавлены опции: opt.prof_bt_max, arena.<i>.name, thread.tcache.max, thread.tcache.ncached_max.write, thread.tcache.ncached_max.read_sizeclass, arenas.hugepage и approximate_stats.active.


  1. Главная ссылка к новости (https://github.com/jemalloc/je...)
  2. OpenNews: Facebook возобновил разработку библиотеки управления памятью jemalloc
  3. OpenNews: Прекращена разработка библиотеки управления памятью jemalloc
  4. OpenNews: Google опубликовал новый вариант системы распределения памяти TCMalloc
  5. OpenNews: Miсrosoft открыл код системы распределения памяти mimalloc
  6. OpenNews: Менеджер распределения памяти jemalloc выпущен в виде отдельной библиотеки
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65201-jemalloc
Ключевые слова: jemalloc, malloc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (4) RSS
  • 1, Жироватт (ok), 15:06, 14/04/2026 [ответить]  
  • +/
    Я бы даже не стал шутить про "отставить разврат - закопать стюардессу! отставить разврат - откопать стюардессу", но реально, в чем профит использовать конкретно этот аллокатор?
     
     
  • 2, Аноним (2), 15:34, 14/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    для каждого ядра CPU используется своя изолированная область распределения памяти, что позволяет добиться линейной масштабируемости при росте числа потоков
     
     
  • 4, Жироватт (ok), 15:50, 14/04/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру