jemalloc 5.3.1

След почти четиригодишна пауза (вж. „jemalloc всичко“) беше пусната версия 5.3.1 на алокатора jemalloc – реализация на malloc(3), с особено внимание към предотвратяване на фрагментация и поддръжка на мащабируема паралелност.

Новото издание включва над 390 комита с поправки на грешки, нови функции, оптимизация на производителността и подобрена преносимост.

Проектът е написан на езика C и се разпространява под лиценз BSD.

Нови възможности:

  • поддръжка на pvalloc(3).
  • откриване на двойно освобождаване на памет в отладъчния билд;
  • добавена опция за компилиране —enable-pageid за включване на анотация на разпределената памет.
  • добавен runtime параметър prof_bt_max за управление на максималната дълбочина на стека за профилиране;
  • добавена опция за компилиране —enable-force-getenv за употреба на getenv вместо secure_getenv;
  • добавена опция за компилиране —disable-dss за деактивиране на ползването на sbrk(2);
  • добавена опция за компилиране tcache_ncached_max за управление на броя елементи в кеша на нишките.
  • добавен runtime параметър calloc_madvise_threshold за определяне дали ядрото или memset се използват за нулиране на разпределените блокове памет при извикване на calloc;
  • добавена опция за компилиране —disable-user-config за деактивиране на четене по време на изпълнение на конфигурации от файла /etc/malloc.conf или от променливата на околната среда MALLOC_CONF;
  • добавен runtime параметър disable_large_size_classes за осигуряване на работа на новия алгоритъм за изчисляване на наличния размер, който минимизира разходите за памет при разпределение на големи блокове памет, т.е. с размер >= 4 * PAGE;
  • включено е използването на process_madvise и добавен runtime параметър process_madvise_max_batch за управление на максималния брой региони памет в всяка „пачка“ madvise;
  • добавени интерфейси mallctl:
    • opt.prof_bt_max;
    • arena.<i>.name за промяна и получаване на имената на „арените“;
    • thread.tcache.max за промяна и получаване на tcache_max на текущата нишка;
    • thread.tcache.ncached_max.write и thread.tcache.ncached_max.read_sizeclass за промяна и получаване на ncached_max на текущата нишка;
    • arenas.hugepage за получаване на използвания размер hugepage, също така изнасящ го в статистика malloc;
    • approximate_stats.active за получаване на приблизителна стойност на текущия обем активни байтове, която не трябва да се сравнява с други получени статистически данни.
  • така също са поправени много грешки и е подобрена документацията.

Източник: linux.org.ru

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