ĂshtĂ« prezantuar versioni 5.4.0 i bibliotekĂ«s sĂ« menaxhimit tĂ« memories jemalloc, e cila ofron njĂ« implementim alternativ tĂ« funksioneve malloc, tĂ« optimizuar pĂ«r tĂ« ulur fragmentimin dhe pĂ«r punĂ« nĂ« sisteme shumĂ«procesorike. PĂ«r tĂ« zgjidhur problemet me bllokimet nĂ« sistemet shumĂ«bĂ«rthamore, nĂ« jemalloc pĂ«rdoret njĂ« zonĂ« e veçuar e alokimit tĂ« memories pĂ«r çdo bĂ«rthamĂ« CPU, gjĂ« qĂ« mundĂ«son shkallĂ«zim linear me rritjen e numrit tĂ« rrjedhave.
Në qershor 2025, autori i projektit ndaloi mirëmbajtjen dhe e kaloi depozitën e jemalloc në regjim arkivimi, por në mars të këtij viti zhvillimi u rifillua nga 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 parazgjedhje që nga viti 2005. Kodi i bibliotekës është shkruar në C dhe shpërndahet sipas licencës BSD.
Ndër ndryshimet:
- ĂshtĂ« thjeshtuar logjika e mbushjes dhe pastrimit tĂ« tcache (Thread Local Cache), si edhe dispatchimi i alokimit tĂ« memories.
- JanĂ« unifikuar alokatorĂ«t e faqeve tĂ« memories PAC (Page Allocator Classic) dhe HPA (Huge Page Allocator). ĂshtĂ« hequr mekanizmi i ndĂ«rlikuar i thirrjeve indirekte pĂ«rmes vtable (PAI vtable).
- Për të thjeshtuar mirëmbajtjen dhe zgjerimin e platformave, të gjitha operacionet e varura nga platforma janë zhvendosur në skedarë header të veçantë.
- ĂshtĂ« thjeshtuar dispatchimi i komandave mallctl, si edhe Ă«shtĂ« ripunuar infrastruktura pĂ«r gjenerimin dhe paraqitjen e statistikave.
- ĂshtĂ« shtuar flamuri EXTENT_ALLOC_FLAG_PINNED, i cili lejon shĂ«nimin e zonave tĂ« pamapueshme tĂ« memory mapping qĂ« nuk mund tĂ« zhvendosen, si p.sh. faqet HugeTLB, pĂ«r ripĂ«rdorim prioritar. PĂ«r tĂ« marrĂ« statistika mbi pĂ«rdorimin e memories sĂ« fiksuar, janĂ« shtuar ndĂ«rfaqe tĂ« reja mallctl: stats.pinned, stats.arenas..pinned, stats.arenas..extents..npinned, stats.arenas..extents..pinned_bytes dhe stats.arenas..mutexes.extents_pinned.{counter} .
- Përmbajtja e statistikave malloc është sinkronizuar në formatet e lexueshme dhe JSON.
- Janë hequr parametrat e vjetëruar lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div dhe lg_tcache_flush_large_div.
Burimi: opennet.ru
