Roslyn on GitHub के स्रोत कोड के माध्यम से पढ़ते समय, मैंने देखा कि ObjectPool<T>
कक्षा का उपयोग किया गया था। इसका उपयोग मेमोरी ओवरहेड को कम करने के लिए किया जाता है।सरणी में रखे जाने पर संरचनाओं में रोसलीन लपेटें क्यों?
आंतरिक यह an array का उपयोग करता जमा वस्तुओं स्टोर करने के लिए। क्या मुझे समझ नहीं आता बजाय सिर्फ T
का उपयोग करने का कारण है कि यह एक निजी struct सरणी तत्व के रूप में प्रकार T
की एक एकल क्षेत्र युक्त Element
कहा जाता है का उपयोग करता है।
क्या यह प्रदर्शन के लिए चिंता से बाहर है? मेमोरी ओवरहेड?
पवित्र ..... मुझे इसकी उम्मीद नहीं थी, सरणी को खुद को परिवर्तनीय घोषित करना संभव होना चाहिए। इस कामकाज से ज्यादा अच्छा होगा। अब मुझे अपने विज़ुअलाइज़ेशन इंजन में कुछ सामान बदलने की जरूरत है। : -/ –
अरे ... मुझे यह नहीं पता था। मैं निश्चित रूप से कल कुछ कोड जांचने वाला हूं: - \ –
मैंने [Roslyn प्रोजेक्ट] पर एक [फीचर प्रस्ताव] (https://github.com/dotnet/roslyn/issues/4211) पोस्ट किया है (https: // github .com/डॉटनैट/Roslyn)। यह invariant सरणी का उपयोग थोड़ा आसान बनाने के लिए है। – Wazner