31 points par xguru 2026-05-24 | 3 commentaires | Partager sur WhatsApp
  • Un allocateur généraliste pouvant remplacer malloc sans modification du code, applicable aux programmes existants en remplacement direct
  • Plus rapide que jemalloc et tcmalloc tout en consommant moins de mémoire : 13 % plus rapide que tcmalloc et plus de 2,5x plus rapide que jemalloc
    • Ce n’est pas seulement le meilleur sur un benchmark précis : il se classe régulièrement parmi les meilleurs, quelle que soit la charge de travail
  • Des structures de données simples d’environ 10k LOC, facilitant l’intégration et le portage, tout en étant assez robuste pour fonctionner dans des services distribués à l’échelle de milliers de machines
  • Porté sur de nombreux OS, dont Windows, macOS, Linux, WASM, divers BSD, Haiku et MUSL
  • Zéro souci de contention des verrous en multithread
    • Pour chaque page, séparation entre liste libre thread-local et liste libre concurrente
    • Même si un autre thread libère la mémoire, un seul CAS suffit, sans code de synchronisation complexe
  • Écrit en C. Licence MIT

3 commentaires

 
barca105 2026-05-27

L’effet se ressent vraiment quand on fait du multithreading thread-local. Je l’utilise de façon très pratique.

 
dudnspa0203 2026-05-25

Il y a aussi une implémentation d'arena, donc je l'utilise bien haha

 
qlghwp123 2026-05-24

On dirait bien que c’est ce truc-là qui était utilisé dans le code source de pogocache la dernière fois.