microsoft/mimalloc - Yüksek performanslı genel amaçlı bellek ayırıcısı
(github.com/microsoft)mallociçin drop-in olarak değiştirilebilen genel amaçlı bir ayırıcı; mevcut programlara kod değişikliği olmadan uygulanabilirjemallocvetcmalloc'dan daha hızlı, aynı zamanda daha az bellek kullanıyor:tcmalloc'a kıyasla %13,jemalloc'a kıyasla 2,5 kattan fazla daha hızlı- Belirli bir benchmark'ta birinci olmakla kalmayıp, hangi iş yükü olursa olsun sürekli üst sıralarda yer alıyor
- Yaklaşık 10k LOC'lik basit veri yapıları sayesinde entegre etmesi/taşıması kolay; aynı zamanda binlerce makine ölçeğindeki dağıtık servislerde çalıştırılabilecek düzeyde
- Windows, macOS, Linux, WASM, çeşitli BSD sürümleri, Haiku, MUSL ve daha birçok işletim sistemine taşınmış durumda
- Çok iş parçacıklı ortamlarda kilit çekişmesi endişesi sıfır
- Her sayfa için thread-local free list ile concurrent free list birbirinden ayrılıyor
- Başka bir iş parçacığı belleği serbest bıraksa bile tek bir CAS işlemi yeterli; karmaşık senkronizasyon kodu gerekmiyor
- C ile yazıldı. MIT lisansı
3 yorum
Thread-local çok iş parçacıklı çalışmada etkisi gerçekten hissediliyor. Faydalı şekilde kullanıyorum.
Arena implementasyonu da var, o yüzden keyifle kullanıyorum haha
Görünüşe göre geçen sefer
pogocachekaynak kodunda kullanılan şey buydu.