2014-09-13 96 views
5

Her istemci için bazı paylaşılan bellekler oluşturan ve mesaj göndermek için bu paylaşılan hafızada mesaj sıralarını (koddan çağrılan bir C++ sınıfı) kullanan bir linux sunucu programına bakıyorum ve geri. Bunun karşısında, alan soketleriyle aynı kullanım şekli gibi görünüyor, yani müşterilerinin yüklerini gönderen ve alan bir sunucu programı var.unix soketi vs daha hızlı olan paylaşılan bellek mesajı

Soruma soru: unix etki alanı soketinin hangi ekstra işi var? Bir mesaj kuyruğu ile paylaşımlı belleğe neden bir soketten daha hızlı ve tam tersi ne olabilir?

Tahminimce, gönderme ve tekrar arama için bazı ek yük var, ama tam olarak ne olduğundan emin değilim. Bunu denemeden önce, bunu anlamaya çalışabilirim.

cevap

5

İşte bir tartışma: UNIX Domain sockets vs Shared Memory (Mapped File)

Ben yuva akış soketi için yalnızca bir bayt akışı, çok ilkel olduğunu ekleyebilir. Bu aslında bir avantaj olabilir - farklı alt sistemler arasında mesajları küçük ve basit hale getirme eğilimi gösterir, yalın arayüzleri ve gevşek bağlantıyı teşvik eder. Ancak bazen paylaşılan hafıza gerçekten faydalıdır. Veri yoğun bir Google Haritalar uygulamasına bir C++ Linux arka ucunda paylaşılan bellek kullandım - veritabanı, paylaşılan bellekte yalnızca büyük (+1 Gigabyte) png raster'tı.

İlgili konular