Dostupna je biblioteka za upravljanje memorijom jemalloc 5.3.1

Nakon 4 godine od objavljivanja prethodne nadogradnje, dostupan je izlaz biblioteke za upravljanje memorijom jemalloc 5.3.1, koja nudi alternativnu implementaciju malloc funkcija, optimiziranu za smanjenje fragmentacije i rad na višeprocesorskim sustavima. Kako bi se riješili problemi s blokadama na višekorporacijskim sustavima, jemalloc koristi izoliranu memorijsku dodeljivanu područje za svako jezgro CPU-a, što omogućuje linearno skaliranje s povećanjem broja niti.

U lipnju 2025. godine, autor projekta prestao je održavati jer je preveo jemalloc repozitorij u arhivski mod, ali je prošlog mjeseca razvoj obnovila kompanija Meta, koja primjenjuje jemalloc u svojoj infrastrukturi. Biblioteka je prvotno razvijena za FreeBSD i koristi se u ovom operativnom sustavu po defaultu od 2005. godine. Kod biblioteke je napisan u C-u i distribuira se pod BSD licencom.

Između izmjena:

  • Implementirana je funkcija pvalloc, koja može biti korisna prilikom zamjene libc alokatora memorije.
  • U dijagnostičkim izgradnjama uključen je način otkrivanja dvostrukog poziva funkcije free(). Za podešavanje veličine stoga, u okviru kojeg se vrši skeniranje, dodan je parametar debug_double_free_max_scan.
  • Dodana je opcija za izgradnju «—enable-pageid» za označavanje prilikom mapiranja memorije, koristeći prctl s flagom PR_SET_VMA. Nakon uključivanja, mapiranje se može pratiti kroz /proc//maps.
  • Dodana je opcija «prof_bt_max», koja omogućava postavljanje maksimalne dubine stoga za profiliranje.
  • Dodana je opcija za izgradnju «—enable-force-getenv» za korištenje u kodu običnih funkcija getenv() umjesto zaštićene secure_getenv().
  • Dodana je opcija za izgradnju «—disable-dss» za isključivanje upotrebe funkcije sbrk().
  • Dodana je opcija «tcache_ncached_max» za ograničavanje broja elemenata u predmemoriji niti.
  • Dodana je opcija «calloc_madvise_threshold» za konfiguriranje upotrebe mehanizma jezgre madvise ili funkcije memset za nulte memorije dodijeljene putem funkcije calloc.
  • Dodana je opcija za izgradnju «—disable-user-config» za isključivanje učitavanja postavki iz datoteke /etc/malloc.conf ili varijable okruženja MALLOC_CONF.
  • Dodana je opcija «process_madvise_max_batch» za ograničavanje broja blokova memorije za svaku batch-operaciju madvise.
  • Dodana opcija „disable_large_size_classes“ za isključivanje novog algoritma za izračunavanje veličine dodijeljene memorije, koji smanjuje troškove pri dodjeli blokova veličine veće od 4 stranice memorije.
  • U alat mallctl dodane su opcije: opt.prof_bt_max, arena.<i>.name, thread.tcache.max, thread.tcache.ncached_max.write, thread.tcache.ncached_max.read_sizeclass, arenas.hugepage i approximate_stats.active.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster