jemalloc 5.3.1

Na een onderbreking van bijna vier jaar (zie "jemalloc alles») de release van versie 5.3.1 van de allocator heeft plaatsgevonden jemalloc – een implementatie van malloc(3) die de nadruk legt op het voorkomen van fragmentatie en het ondersteunen van schaalbare gelijktijdigheid.

De nieuwe release bevat meer dan 390 commits met bugfixes, nieuwe functies, prestatieoptimalisaties en verbeteringen op het gebied van portabiliteit.

Het project is geschreven in C en wordt gedistribueerd onder de BSD-licentie.

Nieuwe kansen:

  • pvalloc(3) ondersteuning.
  • Dubbele vrijgave gedetecteerd in debug-build;
  • De compileeroptie --enable-pageid is toegevoegd om geheugen-gemapte annotatie mogelijk te maken.
  • Er is een runtimeparameter prof_bt_max toegevoegd om de maximale stackdiepte voor profiling te regelen;
  • De compileeroptie --enable-force-getenv is toegevoegd om getenv te gebruiken in plaats van secure_getenv;
  • De compileeroptie --disable-dss is toegevoegd om het gebruik van sbrk(2) uit te schakelen;
  • De compileeroptie tcache_ncached_max is toegevoegd om het aantal items in de threadcache te regelen.
  • Er is een runtimeparameter calloc_madvise_threshold toegevoegd om te bepalen of de kernel of memset wordt gebruikt om toegewezen geheugenblokken te wissen bij het aanroepen van calloc;
  • De compileertijdoptie --disable-user-config is toegevoegd om het lezen van configuraties uit het bestand /etc/malloc.conf of uit de omgevingsvariabele MALLOC_CONF tijdens runtime uit te schakelen.
  • De runtimeparameter disable_large_size_classes is toegevoegd om het nieuwe algoritme voor het berekenen van de beschikbare grootte in te schakelen. Dit algoritme minimaliseert de geheugenoverhead bij het toewijzen van grote geheugenblokken, d.w.z. met een grootte van >= 4 * PAGE;
  • Het gebruik van process_madvise is ingeschakeld en de runtimeparameter process_madvise_max_batch is toegevoegd om het maximale aantal geheugenregio's in elke madvise-"batch" te regelen;
  • mallctl-interfaces toegevoegd:
    • opt.prof_bt_max;
    • arena.
    • thread.tcache.max om de tcache_max van de huidige thread te wijzigen en op te vragen;
    • thread.tcache.ncached_max.write en thread.tcache.ncached_max.read_sizeclass om de ncached_max van de huidige thread te wijzigen en op te halen;
    • arenas.hugepage geeft de gebruikte hugepage-grootte terug, die ook naar malloc stats wordt geëxporteerd;
    • approximate_stats.active om een ​​geschatte waarde te krijgen van het huidige aantal actieve bytes. Deze waarde mag niet worden vergeleken met andere opgehaalde statistieken.
  • Er zijn ook veel bugs verholpen en de documentatie is verbeterd.

Bron: linux.org.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster