Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

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

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 1615
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 49 раз
Поблагодарили: 26 раз

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

Сообщение root:# »

Доступна библиотека управления памятью jemalloc 5.3.1
Спустя 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.

Источник: https://www.opennet.ru/opennews/art.shtml?num=65201