A fost publicată biblioteca de gestionare a memoriei jemalloc 5.3

A fost lansată versiunea 5.4.0 a bibliotecii de gestionare a memoriei jemalloc, care oferă o implementare alternativă a funcțiilor malloc, optimizată pentru a reduce fragmentarea și a funcționa pe sisteme multiprocesor. Pentru a rezolva problemele de blocare pe sistemele cu mai multe nuclee, jemalloc folosește o zonă izolată de distribuție a memoriei pentru fiecare nucleu CPU, ceea ce permite scalabilitate liniară pe măsură ce numărul de fire de execuție crește.

În iunie 2025, autorul proiectului a oprit întreținerea și a trecut depozitul jemalloc în modul arhivă, dar în martie a acestui an, compania Meta a reluat dezvoltarea, utilizând jemalloc în infrastructura sa. Biblioteca a fost inițial dezvoltată pentru FreeBSD și este utilizată în acest sistem de operare în mod implicit din 2005. Codul bibliotecii este scris în C și este distribuit sub licența BSD.

Printre modificări:

  • A fost simplificată logica de umplere și resetare a tcache (Thread Local Cache), precum și gestionarea alocării memoriei.
  • Allocatoarele de pagini de memorie PAC (Page Allocator Classic) și HPA (Huge Page Allocator) au fost unificate. Mecanismul complicat de apeluri indirecte prin intermediul vtable (PAI vtable) a fost eliminat.
  • Pentru o întreținere și extindere mai ușoară a platformelor, toate operațiunile dependente de platformă au fost extrase în fișiere header separate.
  • A fost simplificată gestionarea comenzilor mallctl și a fost reproiectată infrastructura pentru generarea și prezentarea statisticilor.
  • A fost adăugat flagul EXTENT_ALLOC_FLAG_PINNED, care permite marcarea zonelor de mapare a memoriei care nu pot fi evocate, cum ar fi paginile HugeTLB, pentru reutilizarea lor prioritară. Au fost adăugate noi interfețe mallctl pentru a obține statistici despre utilizarea memoriei fixate: stats.pinned, stats.arenas.<i>.pinned, stats.arenas.<i>.extents.<j>.npinned, stats.arenas.<i>.extents..pinned_bytes și stats.arenas.<i>.mutexes.extents_pinned.{counter}.
  • Conținutul statisticilor malloc a fost sincronizat în formate lizibile și JSON.
  • Au fost eliminate parametrii învechiți lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div și lg_tcache_flush_large_div.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster