Pubblicata la libreria di gestione della memoria jemalloc 5.3

È stata rilasciata la libreria di gestione della memoria jemalloc 5.4.0, che offre un'implementazione alternativa delle funzioni malloc, ottimizzata per ridurre la frammentazione e per il funzionamento su sistemi multiprocessore. Per risolvere i problemi di lock sui sistemi multicore, in jemalloc viene utilizzata un'area isolata di allocazione della memoria per ogni core CPU, permettendo di ottenere una scalabilità lineare all'aumentare del numero di thread.

Nel giugno 2025 l'autore del progetto ha interrotto la manutenzione e ha archiviato il repository jemalloc, ma a marzo di quest'anno lo sviluppo è stato ripreso da Meta, che utilizza jemalloc nella propria infrastruttura. In origine la libreria è stata sviluppata per FreeBSD ed è usata come impostazione predefinita in questo sistema operativo dal 2005. Il codice della libreria è scritto in C ed è distribuito con licenza BSD.

Tra le modifiche:

  • È stata semplificata la logica di riempimento e svuotamento di tcache (Thread Local Cache), così come il dispatch dell'allocazione della memoria.
  • Sono stati unificati gli allocator di pagine di memoria PAC (Page Allocator Classic) e HPA (Huge Page Allocator). È stato rimosso il complesso meccanismo di chiamate indirette tramite vtable (PAI vtable).
  • Per semplificare la manutenzione e l'estensione alle piattaforme, tutte le operazioni dipendenti dalla piattaforma sono state spostate in file header separati.
  • È stato semplificato il dispatch dei comandi mallctl ed è stata inoltre rielaborata l'infrastruttura per la generazione e la visualizzazione delle statistiche.
  • È stato aggiunto il flag EXTENT_ALLOC_FLAG_PINNED, che consente di contrassegnare aree non espellibili del mapping di memoria, come le pagine HugeTLB, per favorirne il riutilizzo prioritario. Per ottenere statistiche sull'utilizzo della memoria pinned sono state aggiunte nuove interfacce mallctl: stats.pinned, stats.arenas..pinned, stats.arenas..extents..npinned, stats.arenas..extents..pinned_bytes e stats.arenas..mutexes.extents_pinned.{counter} .
  • Il contenuto delle statistiche malloc è stato sincronizzato tra i formati leggibile e JSON.
  • Sono stati rimossi i parametri obsoleti lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div e lg_tcache_flush_large_div.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster