C / C ++ ile geliştirilmiş bir "sunucuya" TCP soketi üzerinden bağlanan bir Java uygulamam var.
hem uygulama hem de sunucu aynı makinede, bir Solaris kutusunda çalışıyor (ancak sonunda Linux'a geçmeyi düşünüyoruz). değiş tokuş edilen veri türü basit mesajlardır (oturum açma, ACK oturum açma, sonra müşteri bir şey sorar, sunucu yanıtları). her mesaj yaklaşık 300 bayt uzunluğundadır.
Şu anda Soketler kullanıyoruz ve her şey yolunda, ancak IPC yöntemlerini kullanarak veri alışverişi yapmanın daha hızlı bir yolunu (daha düşük gecikme süresi) arıyorum.
Ağı araştırıyorum ve aşağıdaki teknolojilere referanslar buldum:
- paylaşılan hafıza
- borular
- kuyruklar
- yanı sıra DMA (Doğrudan Bellek Erişimi) olarak adlandırılan
ancak performanslarının doğru analizini bulamadım, onları hem JAVA'da hem de C / C ++ 'da nasıl uygulayacağımı (böylece birbirleriyle konuşabilirler), belki de nasıl yapılacağını hayal edebildiğim borular dışında.
Bu bağlamda her yöntemin performansı ve fizibilitesi hakkında yorum yapan var mı? kullanışlı uygulama bilgilerine herhangi bir işaretçi / bağlantı var mı?
DÜZENLEME / GÜNCELLEME
Burada aldığım yorum ve cevapları takiben, Unix Etki Alanı Soketleri hakkında, boruların hemen üzerine inşa edilmiş gibi görünen ve bana tüm TCP yığınını kurtaracak bilgiler buldum. platforma özeldir, bu yüzden onu JNI veya juds veya junixsocket ile test etmeyi planlıyorum .
Sonraki olası adımlar, boruların doğrudan uygulanması, ardından paylaşılan bellek olabilir, ancak ekstra karmaşıklık düzeyi konusunda uyarıldım ...
yardımınız için teşekkürler