jemalloc 5.3.1

Dopo una pausa di quasi quattro anni (vedi "jemalloc tutto») è avvenuto il rilascio della versione 5.3.1 dell'allocatore jemalloc – un'implementazione di malloc(3) che enfatizza la prevenzione della frammentazione e il supporto per la concorrenza scalabile.

La nuova versione include oltre 390 commit con correzioni di bug, nuove funzionalità, ottimizzazioni delle prestazioni e miglioramenti della portabilità.

Il progetto è scritto in linguaggio C e distribuito con licenza BSD.

Nuove funzionalità:

  • supporto pvalloc(3).
  • Rilevata doppia deallocazione nella build di debug;
  • Aggiunta l'opzione di compilazione --enable-pageid per abilitare l'annotazione mappata in memoria.
  • Aggiunto il parametro di runtime prof_bt_max per controllare la profondità massima dello stack per la profilazione;
  • Aggiunta l'opzione di compilazione --enable-force-getenv per utilizzare getenv al posto di secure_getenv;
  • Aggiunta l'opzione di compilazione --disable-dss per disabilitare l'uso di sbrk(2);
  • Aggiunta l'opzione di compilazione tcache_ncached_max per controllare il numero di elementi nella cache dei thread.
  • Aggiunto il parametro di runtime calloc_madvise_threshold per determinare se azzerare i blocchi di memoria allocati viene utilizzato il kernel o il memset durante la chiamata a calloc;
  • È stata aggiunta l'opzione di compilazione --disable-user-config per disabilitare la lettura delle configurazioni dal file /etc/malloc.conf o dalla variabile d'ambiente MALLOC_CONF in fase di esecuzione.
  • È stato aggiunto il parametro di runtime disable_large_size_classes per abilitare il nuovo algoritmo di calcolo delle dimensioni disponibile, che riduce al minimo il sovraccarico di memoria durante l'allocazione di blocchi di memoria di grandi dimensioni, ovvero con una dimensione >= 4 * PAGE;
  • È stato abilitato l'utilizzo di process_madvise ed è stato aggiunto il parametro di runtime process_madvise_max_batch per controllare il numero massimo di regioni di memoria in ogni "batch" di madvise;
  • Interfacce mallctl aggiunte:
    • opt.prof_bt_max;
    • arena.
    • thread.tcache.max per modificare e ottenere il tcache_max del thread corrente;
    • thread.tcache.ncached_max.write e thread.tcache.ncached_max.read_sizeclass per modificare e ottenere il valore di ncached_max del thread corrente;
    • arenas.hugepage restituisce la dimensione della hugepage utilizzata, esportata anche nelle statistiche di malloc;
    • approximate_stats.active per ottenere un valore approssimativo della quantità corrente di byte attivi, che non deve essere confrontato con altre statistiche recuperate.
  • Sono stati inoltre corretti numerosi bug e la documentazione è stata migliorata.

Fonte: linux.org.ru

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster