jemalloc 5.3.1

Після майже чотирирічної паузи (див.jemalloc все») відбувся випуск 5.3.1 аллокатора jemalloc – реалізації malloc(3), в якій особлива увага приділяється запобіганню фрагментації та підтримці масштабованої паралельності.

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

Проект написаний мовою С та розповсюджується за ліцензією 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.
    • 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