La bibliothèque de gestion de mémoire jemalloc 5.3 a été publiée.

La version 5.4.0 de la bibliothèque de gestion de mémoire jemalloc est disponible. Elle propose une implémentation alternative des fonctions malloc, optimisée pour réduire la fragmentation et fonctionner sur les systèmes multiprocesseurs. Afin de résoudre les problèmes de verrouillage sur les systèmes multicœurs, jemalloc utilise une zone d'allocation mémoire isolée pour chaque cœur de processeur, permettant ainsi une scalabilité linéaire avec l'augmentation du nombre de threads.

En juin 2025, l'auteur du projet a cessé la maintenance et a archivé le dépôt jemalloc. Cependant, en mars dernier, le développement a été repris par Meta, qui utilise jemalloc dans son infrastructure. La bibliothèque a été initialement développée pour FreeBSD et est utilisée par défaut sur ce système d'exploitation depuis 2005. Son code est écrit en C et distribué sous licence BSD.

Parmi les changements :

  • La logique de remplissage et d'effacement du tcache (Thread Local Cache), ainsi que la répartition de l'allocation de mémoire, ont été simplifiées.
  • Les allocateurs de pages mémoire PAC (Page Allocator Classic) et HPA (Huge Page Allocator) ont été unifiés. Le mécanisme complexe d'appels indirects via la vtable (vtable PAI) a été supprimé.
  • Pour simplifier la maintenance et l'extension de la plateforme, toutes les opérations dépendantes de la plateforme sont déplacées vers des fichiers d'en-tête séparés.
  • L'envoi des commandes mallctl a été simplifié et l'infrastructure de génération et d'affichage des statistiques a été repensée.
  • L'indicateur EXTENT_ALLOC_FLAG_PINNED a été ajouté, permettant de marquer les régions de mappage mémoire non préemptibles, telles que les pages HugeTLB, pour une réutilisation prioritaire. De nouvelles interfaces mallctl ont été ajoutées pour obtenir des statistiques d'utilisation de la mémoire épinglée : stats.pinned, stats.arenas..pinned
  • Statistiques malloc synchronisées aux formats lisible par l'homme et JSON.
  • Suppression des paramètres obsolètes lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div et lg_tcache_flush_large_div.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster