.NET

2008-10-24 9 views
5

में इंटरप्रोसेस संचार मेरे पास एक कोर .NET अनुप्रयोग है जिसमें उप प्रक्रियाओं की एक अनियंत्रित संख्या उत्पन्न करने की आवश्यकता है। इन प्रक्रियाओं को कोर एप्लिकेशन में कुछ प्रकार के राज्य ऑब्जेक्ट तक पहुंचने में सक्षम होना चाहिए।.NET

सबसे अच्छी तकनीक क्या है? मैं प्रक्रियाओं (बिटमैप्स) के बीच बड़ी मात्रा में डेटा ले जाउंगा, इसलिए इसे तेज़ होना चाहिए।

उत्तर

4

मैं इसी तरह की आवश्यकताओं है और Windows Communication Foundation का उपयोग कर रहा है कि क्या करने के लिए अभी। हालांकि मेरे डेटा आकार शायद थोड़ा सा छोटे हैं।

संदर्भ के लिए मैं एक क्वाड-कोर मशीन पर प्रति सेकंड के बारे में 5K-30K की 30-60 के बारे में अनुरोध कर रहा हूँ। डब्ल्यूसीएफ अब तक काफी अच्छी तरह से पकड़ रहा है।

WCF के साथ आप एक परिवहन प्रोटोकॉल और सुरक्षा मोड आपके आवेदन के लिए उपयुक्त है कि चुनने का जोड़ा लाभ है।

3

आप वास्तव में अलग प्रक्रियाओं की आवश्यकता है वहाँ हमेशा Named Pipes जो काफी अच्छे प्रदर्शन की उम्मीद है।

हालांकि, क्या ऐपडोमेन सीमा पर्याप्त होगी? फिर आप ऑब्जेक्ट मार्शलिंग कर सकते हैं और चीजें बहुत आसान हो जाएंगी। आप MarshalByRefObject विशेषता का उपयोग कर एक ही ऑब्जेक्ट के साझा उदाहरणों को काम कर सकते हैं।

4

मैं कदम बड़े डेटा चारों ओर करने में संकोच हो जाएगा, मैं बजाय चारों ओर अर्थात स्मृति मैप की गई फ़ाइलों बड़े डेटा की ओर इशारा स्थानांतरित करने के लिए इच्छुक होगी।

+0

बताएं कि यह प्रक्रिया सीमाओं में कैसे काम करेगा। – FlySwat

+0

मुझे लगता है कि जार्विस का मतलब है, मेमोरी मैप की गई फ़ाइलों का उपयोग दो या दो से अधिक प्रक्रियाओं के बीच स्मृति साझा करने के लिए करें। बेशक – Jonke

+2

। मेमोरी मैप की गई फ़ाइलों को विशेष रूप से प्रक्रियाओं के बीच स्मृति साझा करने में सक्षम होने के लिए डिज़ाइन किया गया है। दिलचस्प बात यह है कि सी # 4.0 ने अभी इस काम के लिए एमएमएफ कक्षाओं में बनाया है। –

3

आप अंतर संचार प्रक्रिया (आईपीसी) IpcChannel साथ के लिए .NET दूरस्थ का उपयोग कर सकते हैं। अन्यथा आप साझा मेमोरी रैपर और अन्य आईपीसी फॉर्मों की खोज कर सकते हैं।

संपादित करें: वहाँ एक MSDN article दूरस्थ सहित तरीकों की एक किस्म के WCF की तुलना है। हालांकि जब तक कि मैं बार ग्राफ को गलत नहीं पढ़ रहा हूं, यह दिखाता है कि रिमोटिंग समान या थोड़ा बेहतर है (दूसरी टिप्पणी के विपरीत)। WCF बनाम Remoting के बारे में blog post भी है। ब्लॉग पोस्ट स्पष्ट रूप से दिखाता है कि रीमोटिंग द्विआधारी वस्तुओं के लिए तेज़ है और यदि आप बिटमैप्स (बाइनरी ऑब्जेक्ट्स) पास कर रहे हैं तो ऐसा लगता है कि रिमोटिंग या साझा मेमोरी या अन्य आईपीसी विकल्प तेज हो सकता है, हालांकि डब्ल्यूसीएफ वैसे भी खराब विकल्प नहीं हो सकता है।

5

WCF शायद बिल फिट ...

यहाँ वितरित गहन विश्लेषण के प्रदर्शन के लिए एक really good article on .NET remoting है। हालांकि दूरस्थ WCF के साथ प्रतिस्थापित किया गया है, लेख प्रासंगिक है और दिखाता है कि कॉल एसिंक्रोनस रूप से बनाने के लिए, आदि

यह article contrasts WCF to .NET remoting - संपादित: कुंजी दूर यहाँ ले पता चलता है कि WCF प्रवाह बाहर छोटे डेटा के लिए दूरस्थ प्रदर्शन लेकिन डेटा आकार बढ़ने के रूप में प्रदर्शन को रिमोट करने का दृष्टिकोण आता है।

0

एन्टर मैसेजिंग फ्रेमवर्क का उपयोग करना भी संभव है। ढांचा ब्रोकर घटक का उपयोग करने की पेशकश करता है जहां राज्य बदलते समय अधिसूचनाएं प्राप्त करने के लिए सभी ग्राहकों की सदस्यता ली जा सकती है। ब्रोकर के साथ ग्राहकों को जोड़ने के लिए । ढांचा नामित पाइप्स, टीसीपी या एचटीपी प्रदान करता है। लेकिन यह नामित पाइप्स का उपयोग करना सबसे अच्छा लगता है।

ढांचे के बारे में अधिक जानकारी link text पर मिल सकती है।

संबंधित मुद्दे