Modern bellek ayırıcı algoritmaları çok iş parçacıklı sistemlerde karşılaştırıldı
Öne çıkanlar
- Jemalloc ve mimalloc, düşük atomik işlem ihtiyacıyla çok iş parçacıklı yüklerde kilit çekişmesini azaltıyor.
- Glibc varsayılanı ptmalloc, arena kilitleri nedeniyle yüksek eşzamanlı iş yüklerinde performans kaybına yol açıyor.
- Snmalloc, açık NUMA desteği ve mesajlaşma modeliyle soketler arası bellek erişim maliyetini düşürüyor.
Bellek ayırma mekanizmalarının çok iş parçacıklı sistemlerdeki darboğazları ve performans farkları teknik bir incelemeyle karşılaştırıldı. Eşzamanlı bellek tahsislerinde işletim sistemi çağrılarının ve kilit mekanizmalarının işlemci sayısı arttıkça programları yavaşlattığı aktarıldı. İncelemede dlmalloc, glibc ptmalloc, jemalloc, tcmalloc, mimalloc ve snmalloc gibi yaygın bellek ayırıcı mimarileri mimari temelde değerlendirildi.
Bellek ayırıcıların ön yüz ve arka yüz evriminde arena yapıları, çekirdek ve iş parçacığı yerel tamponları ile bölünmüş kuyruk modelleri öne çıkıyor. Jemalloc ve mimalloc, atomik operasyon sayısını ve paylaşılan önbellek satırı çekişmesini en aza indiren tasarımlarıyla yüksek performans sağlıyor. Özellikle mimalloc düşük gecikme gerektiren ortamlarda öne çıkarken tcmalloc küçük boyutlu nesne yönetiminde işlemci başına önbellekleriyle avantaj elde ediyor.
Çok soketli ve NUMA mimarili sunucu iş yüklerinde ise Microsoft Research tarafından geliştirilen snmalloc, yerel bellek erişim modeliyle öne çıkıyor. Glibc varsayılanı olan ptmalloc kilit çekişmeleri nedeniyle yüksek eşzamanlı sistemlerde geride kalırken geliştiricilerin iş yükü türüne göre doğru ayırıcıyı tercih etmesinin sistem verimini belirlediği kaydedildi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.