Pas 4 vjetësh nga publikimi i përditësimit të fundit, lëshohet versioni i bibliotekës për menaxhimin e memories jemalloc 5.3.1, e cila ofron një realizim alternativ të funksioneve malloc, të optimizuar për të reduktuar fragmentimin dhe për të punuar në sisteme me shumë procesorë. Për të zgjidhur problemet me bllokimet në sisteme me shumë bërthama, në jemalloc për çdo bërthamë CPU përdoret një zonë e izoluar e shpërndarjes së memories, që lejon arritjen e një shkallëzueshmërie lineare me rritjen e numrit të thread-ëve.
Në qershor 2025, autori i projektit ndali mbështetje dhe e kaloi repositorin jemalloc në modin arkiv, por një muaj më parë, zhvillimin e rinisi kompania Meta, e cila përdor jemalloc në infrastrukturën e saj. Fillimisht, biblioteka u zhvillua për FreeBSD dhe përdoret në këtë OS si standard që nga viti 2005. Kodi i bibliotekës është shkruar në C dhe shpërndahet nën licencën BSD.
Among the changes:
- ĂshtĂ« realizuar funksioni pvalloc, i cili mund tĂ« jetĂ« i dobishĂ«m pĂ«r tĂ« zĂ«vendĂ«suar alokatorin e memories libc.
- Në ndërtimet e de-bugimit është aktivizuar regjimi i zbulimit të thirrjeve të dyfishta të funksionit free(). Për të konfiguroni madhësinë e stack-ut, brenda të cilit ekzekutohet skanimi, është shtuar parametri debug_double_free_max_scan.
- EshtĂ« shtuar opcioni i ndĂ«rtimit «âenable-pageid» pĂ«r vendosjen e etiketave gjatĂ« mapimit tĂ« memories, duke pĂ«rdorur prctl me flagun PR_SET_VMA. Pas aktivizimit, mapimi mund tĂ« gjurmohet nĂ« /proc//maps.
- Eshtë shtuar parametri «prof_bt_max», i cili lejon vendosjen e thellësisë maksimale të stack-ut për profilizimin.
- EshtĂ« shtuar opcioni i ndĂ«rtimit «âenable-force-getenv» pĂ«r pĂ«rdorimin nĂ« kod tĂ« funksionit standard getenv() nĂ« vend tĂ« funksionit tĂ« mbrojtur secure_getenv().
- EshtĂ« shtuar opcioni i ndĂ«rtimit «âdisable-dss» pĂ«r çaktivizimin e funksionit sbrk().
- Eshtë shtuar parametri «tcache_ncached_max» për kufizimin e numrit të elementeve në caches-in e tregtisë.
- Eshtë shtuar parametri «calloc_madvise_threshold» për konfigurimin e përdorimit të mekanizmit të bërthamës madvise ose funksionit memset për zerimin e memories, që ndahet përmes funksionit calloc.
- EshtĂ« shtuar opcioni i ndĂ«rtimit «âdisable-user-config» pĂ«r çaktivizimin e ngarkimit tĂ« konfigurimeve nga skedari /etc/malloc.conf ose ndryshorja e mjedisit MALLOC_CONF.
- Shtuar parametri «process_madvise_max_batch» për të kufizuar numrin e blloqeve të memories për çdo operacion batch në madvise.
- Shtuar parametri «disable_large_size_classes» pĂ«r tĂ« çaktivizuar algorĂtmin e ri pĂ«rllogaritĂ«s tĂ« madhĂ«sisĂ« sĂ« memories, duke reduktuar kostot gjatĂ« alokimit tĂ« blloqeve qĂ« janĂ« mĂ« tĂ« mĂ«dha se 4 faqe memorje.
- Në utilitarin mallctl janë shtuar opsionet: opt.prof_bt_max, arena.<i>.name, thread.tcache.max, thread.tcache.ncached_max.write, thread.tcache.ncached_max.read_sizeclass, arenas.hugepage dhe approximate_stats.active.
Burimi: opennet.ru
