2011-05-21 16 views
6

मैं एक डब्ल्यूसीएफ सेवा की मेजबानी कर रहा हूं, जहां आवश्यकताएं हैं कि एक वस्तु, डब्ल्यूसीएफ सेवा को सीधे संदर्भित नहीं किया जाता है, इसे बुलाया जाता है और कुछ (सामान्य) विधियां चलती हैं। तो प्रकार प्रतिबिंब और असेंबली के माध्यम से बनाया गया है: यह ठीक है।ऐपडोमेन संचार और प्रदर्शन

लेकिन फिर मुझे सोच रहा था - कि हम उम्मीद कर रहे हैं कि इनमें से 50 से 100 असेंबली/प्रकार आने वाले हैं, खासकर जब हम उन्हें संस्करण बना रहे हैं। यह संभवत: अभ्यास मेजबान आवेदन की स्मृति और प्रदर्शन के कारण संभावित रूप से अभ्यास (बजाय अभ्यास पर बल्कि सिद्धांत पर) होना चाहिए क्योंकि इन सभी असेंबली को मेम में संदर्भित किया जा रहा है।

तो हमें अनलोड करना चाहिए: लेकिन ऐसा करने का एकमात्र तरीका एक एपडोमेन के माध्यम से है। सोच यह है कि प्रत्येक असेंबली किसी भी तरह से अपने स्वयं के एपडोमेन में चली जाएगी और डब्ल्यूसीएफ सेवा वास्तव में उचित ऐपडोमेन को संदेश भेज रही है। यदि कुछ_period_of_time के लिए ऐपडोमेन का उपयोग नहीं किया जाता है तो हम केवल एपडोमेन को अनलोड करते हैं।

मैं शायद इस के लिए नीचे चिह्नित कर देंगे, लेकिन कुछ मार्गदर्शन पर उपयोगी होगा:

  1. इस एक पागल विचार है?
  2. क्या प्रक्रिया को स्मृति में ~ 100 असेंबली के साथ ठीक चलाना चाहिए?
  3. एपडोमेन के साथ संचार संभवतः कुछ लागत (रिमोटिंग/नामित पाइप के माध्यम से) पर आ जाएगा: क्या यह विचार को अयोग्य घोषित करता है?
  4. मूल रूप से सेवा के लिए एक एपडोमेन बनाने के लिए .dll में कई एपडोमेन शामिल होंगे, क्या यह मंद है?

मुझे इस क्षेत्र में कोई अनुभव नहीं है। मेरी चिंताएं आकार और ऐप का प्रदर्शन हैं यदि मैं ऐसा कुछ नहीं करता हूं। हालांकि ऐप डोमेन विचार के साथ, यह मूल रूप से बड़े पैमाने पर इंजीनियरिंग की तरह लगता है। इस अज्ञात .dlls को होस्ट करने की आवश्यकता कुछ ऐसा नहीं है जिसे मैं बदल सकता हूं।

मैं लगता है कि मेरी कुल सवाल यह है:

के रूप में मूर्खतापूर्ण के रूप में यह लग रहा है इस विचार है, और समर्थक के/चोर इससे संबद्ध क्या हैं?

उत्तर

2

प्रक्रिया को स्मृति में ~ 100 असेंबली के साथ ठीक चलाना चाहिए?

आपको कोशिश करना होगा (नकली-अप बनाना आसान है) लेकिन आप केवल कोड के साथ फंस गए हैं। तो 1 एमबी पर एक टुकड़ा आप 100 एमबी छोड़ने योग्य स्मृति का उपयोग करेंगे, मुझे कोई समस्या की उम्मीद नहीं है।

बशर्ते आपके उदाहरण जारी और एकत्र किए जाएं।

+0

मुझे लगता है कि यह वास्तव में उपलब्ध एकमात्र समझदार उत्तर है ... – peteisace

0

यदि आपके पास स्मृति उपलब्ध है और बेहतर प्रदर्शन चाहते हैं, तो आप या तो पहले कॉल किए जाने तक प्रतीक्षा कर सकते हैं और असेंबली आलसी लोड हो जाएंगी (बाद में कॉल तेज हो जाएंगी), या यदि आप कोई धीमी कॉल नहीं चाहते हैं बनाया गया, तो सेवा शुरू होने पर आप असेंबली लोड कर सकते हैं। मुझे स्मृति होने पर प्रत्येक कॉल पर असेंबली लोड/अनलोड करने का कोई कारण नहीं दिखता है। यदि आपको कोई प्रदर्शन समस्या दिखाई देती है, तो मैं कहूंगा कि असेंबली को उतारने के बारे में सोचें जब उनका उपयोग नहीं किया जा रहा है।

0

यह अनिवार्य रूप से आईआईएस ऐप पूल और वर्कर प्रक्रियाएं करता है। शायद पागल नहीं है, लेकिन यहां कार्यान्वयन के लिए बहुत सी जगह है जो खुश या दुखी नतीजे पैदा कर सकती है।

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