microsoft/mimalloc - Allocateur mémoire généraliste haute performance
(github.com/microsoft)- Un allocateur généraliste pouvant remplacer
mallocsans 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
L’effet se ressent vraiment quand on fait du multithreading thread-local. Je l’utilise de façon très pratique.
Il y a aussi une implémentation d'arena, donc je l'utilise bien haha
On dirait bien que c’est ce truc-là qui était utilisé dans le code source de pogocache la dernière fois.