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