microsoft/mimalloc – Leistungsstarker universeller Speicher-Allocator
(github.com/microsoft)- Ein universeller Allocator als Drop-in-Ersatz für
malloc, der sich ohne Codeänderungen in bestehende Programme integrieren lässt - Schneller als
jemallocundtcmallocund benötigt dabei weniger Speicher: 13 % schneller alstcmalloc, mehr als 2,5× schneller alsjemalloc- Nicht nur in einzelnen Benchmarks auf Platz 1, sondern bei jeder Art von Workload konstant in der Spitzengruppe
- Einfache Datenstrukturen mit rund 10k LOC, dadurch leicht zu integrieren und zu portieren, zugleich geeignet für den Betrieb in verteilten Services mit Tausenden von Maschinen
- Portiert auf viele Betriebssysteme, darunter Windows, macOS, Linux, WASM, verschiedene BSDs, Haiku und MUSL
- Keine Sorge vor Lock-Contention in Multithreading-Umgebungen
- Pro Seite sind thread-lokale Free-Listen und Concurrent-Free-Listen getrennt
- Auch wenn ein anderer Thread Speicher freigibt, reicht ein einziges CAS aus, ohne komplexen Synchronisationscode
- In C geschrieben. MIT-Lizenz
3 Kommentare
Bei Thread-Local-Multithreading ist der Unterschied wirklich spürbar. Ich nutze es sehr hilfreich.
Es gibt auch eine Arena-Implementierung, daher nutze ich es gerne haha
Das ist wohl genau das Ding, das letztes Mal im Quellcode von pogocache verwendet wurde.