Публикувана е библиотеката за управление на паметта jemalloc 5.3

Представен е релиз на библиотеката за управление на паметта jemalloc 5.4.0, предлагаща алтернативна реализация на функциите malloc, оптимизирана за намаляване на фрагментацията и работа в многоядрени системи. За решаване на проблемите с блокировките на многоядрени системи, в jemalloc за всяко ядро на CPU се използва собствена изолирана област за разпределение на паметта, което позволява постигането на линейна мащабируемост с нарастване на броя на нишките.

През юни 2025 г. авторът на проекта прекрати поддръжката и премести репозитория jemalloc в архивен режим, но през март тази година разработката бе възобновена от компания Meta, която използва jemalloc в своята инфраструктура. Първоначално библиотеката е била разработена за FreeBSD и се използва в тази операционна система по подразбиране от 2005 г. Кодът на библиотеката е написан на C и се разпространява под лиценз BSD.

Сред промените:

  • Логиката за запълване и нулиране на tcache (Thread Local Cache) е опростена, както и диспечирането на разпределението на паметта.
  • Алокаторите за страници на паметта PAC (Page Allocator Classic) и HPA (Huge Page Allocator) са унифицирани. Сложният механизъм за косвени извиквания чрез vtable (PAI vtable) е премахнат.
  • За опростяване на поддръжката и разширението на платформите, всички операция зависими от платформата са изнесени в отделни заглавни файлове.
  • Диспечирането на командите mallctl е опростено, а инфраструктурата за генериране и извеждане на статистика е преработена.
  • Добавен е флаг EXTENT_ALLOC_FLAG_PINNED, който позволява маркирането на неизтегляеми области на картографиране на паметта, като страници HugeTLB, за приоритетно повторно използване. За получаване на статистика за използването на закрепена памет са добавени нови интерфейси mallctl: stats.pinned, stats.arenas..pinned, stats.arenas..extents..npinned, stats.arenas..extents..pinned_bytes и stats.arenas..mutexes.extents_pinned.{counter}.
  • Синхронизирано е съдържанието на статистиката malloc в четим и JSON формат.
  • Премахнати са остарели параметри lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div и lg_tcache_flush_large_div.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster