jemalloc 5.4.0 : 160+ commits de nettoyage
Original : Jemalloc 5.4.0
Pourquoi c'est important
jemalloc est un composant bas niveau critique dans Redis, Firefox et les stacks Meta.
jemalloc 5.4.0 est sorti le 17 septembre avec plus de 160 commits. Cette version cible la dette technique : refactorisations, corrections de bugs, amélioration de la couverture de tests et nettoyage des options. Quelques nouvelles fonctionnalités sont également au programme.
La version 5.4.0 de jemalloc, l'allocateur mémoire haute performance utilisé notamment par Meta et Redis, est disponible depuis le 17 septembre. L'essentiel de la release porte sur le nettoyage de la dette technique accumulée : refactorisations, corrections de bugs, meilleure couverture de tests et amélioration de la portabilité suite à des remontées d'utilisateurs.
Côté nouveautés, jemalloc introduit le flag EXTENT_ALLOC_FLAG_PINNED, qui permet aux hooks personnalisés d'allocation de marquer des pages non-réclamables — comme les HugeTLB pages — pour une réutilisation prioritaire hors du pipeline de purge. De nouveaux interfaces mallctl (stats.pinned et variantes par arène) exposent les statistiques de mémoire épinglée et les métriques mutex associées.
L'option runtime experimental_infallible_new est remplacée par un flag de compilation --enable-cxx-infallible-new, ce qui permet des optimisations au niveau compilateur, notamment dans les move constructors, et corrige la conformité au contrat new(std::nothrow). La sélection d'arène par CPU peut désormais être reprise via thread.arena. Changement incompatible notable : les cibles de remplissage et de rétention des tcache s'adaptent désormais dynamiquement à la demande observée entre deux événements GC, remplaçant l'ancien mécanisme de rechargement fixe.