मेरे पास एक जावा ऐप है, जो टीसीपी सॉकेट के माध्यम से सी / सी ++ में विकसित एक "सर्वर" से जुड़ रहा है।
ऐप और सर्वर दोनों एक ही मशीन पर चल रहे हैं, एक सोलारिस बॉक्स (लेकिन हम अंततः लिनक्स में माइग्रेट करने पर विचार कर रहे हैं)। एक्सचेंज किए गए डेटा का प्रकार सरल संदेश है (लॉगिन, लॉगिन एसीके, फिर क्लाइंट कुछ मांगता है, सर्वर जवाब देता है)। प्रत्येक संदेश लगभग 300 बाइट लंबा है।
वर्तमान में हम सॉकेट्स का उपयोग कर रहे हैं, और सभी ठीक है, हालांकि मैं IPC विधियों का उपयोग करके डेटा (कम विलंबता) का आदान-प्रदान करने का तेज़ तरीका ढूंढ रहा हूं।
मैं नेट पर शोध कर रहा हूं और निम्नलिखित तकनीकों के संदर्भ में आया हूं:
- शेयर्ड मेमोरी
- पाइप
- कतारों
- साथ ही डीएमए (डायरेक्ट मेमोरी एक्सेस) के रूप में क्या संदर्भित है
लेकिन मैं उनके संबंधित प्रदर्शनों का समुचित विश्लेषण नहीं कर पाया, न ही उन्हें JAVA और C / C ++ (ताकि वे एक-दूसरे से बात कर सकें) दोनों में लागू किया जा सके, सिवाय शायद पाइप के कि मैं कैसे कल्पना कर सकता हूं।
क्या इस संदर्भ में प्रत्येक विधि के प्रदर्शन और व्यवहार्यता के बारे में कोई टिप्पणी कर सकता है? किसी भी सूचक / उपयोगी कार्यान्वयन जानकारी के लिए लिंक?
संपादित करें / अद्यतन करें
मुझे यहां मिली टिप्पणी और उत्तरों के बाद, मुझे यूनिक्स डोमेन सॉकेट्स के बारे में जानकारी मिली, जो कि बस पाइप के ऊपर बनाए गए लगते हैं, और मुझे पूरे टीसीपी स्टैक से बचाएंगे। यह प्लेटफ़ॉर्म विशिष्ट है, इसलिए मैं इसे JNI या जूस या जूनिक्ससेट के साथ परीक्षण करने की योजना बना रहा हूं ।
अगले संभव कदम पाइप का प्रत्यक्ष कार्यान्वयन होगा, फिर साझा की गई मेमोरी, हालांकि मुझे जटिलता के अतिरिक्त स्तर की चेतावनी दी गई है ...
आपकी सहायता के लिए धन्यवाद