microsoft/mimalloc - allocator memori serbaguna berkinerja tinggi
(github.com/microsoft)- Allocator serbaguna pengganti
mallocyang bisa dipakai secara drop-in, sehingga dapat diterapkan ke program yang sudah ada tanpa mengubah kode - Lebih cepat dari jemalloc dan tcmalloc sekaligus memakai memori lebih sedikit: 13% lebih cepat dibanding tcmalloc, lebih dari 2,5x lebih cepat dibanding jemalloc
- Bukan hanya juara di benchmark tertentu, tetapi secara konsisten berada di papan atas untuk berbagai workload
- Struktur data sederhana sekitar 10k LOC sehingga mudah diintegrasikan/diporting, sekaligus cukup andal untuk dioperasikan pada layanan terdistribusi skala ribuan mesin
- Sudah diporting ke banyak OS seperti Windows, macOS, Linux, WASM, berbagai BSD, Haiku, MUSL, dan lainnya
- Tanpa kekhawatiran kontensi lock di lingkungan multithread
- Untuk setiap page, memisahkan free list thread-local dan free list concurrent
- Bahkan jika memori dibebaskan oleh thread lain, cukup satu kali CAS tunggal dan selesai, tanpa perlu kode sinkronisasi yang kompleks
- Ditulis dalam C. Lisensi MIT
3 komentar
Saat multithreading dengan thread-local, efeknya benar-benar terasa. Saya menggunakannya dengan sangat berguna.
Ada implementasi arena juga, jadi saya memakainya dengan baik haha
Sepertinya ini yang dipakai di source code pogocache waktu itu.