मैं समझता हूं कि रोज़लिन के प्री-रिलीज संस्करण ने एरिक लिपर्ट द्वारा this excellent blog post में वर्णित अपरिवर्तनीय वृक्षों को लागू किया था। हालांकि, यह पोस्ट समाप्त होता है:Roslyn के रिलीज़ संस्करण अपरिवर्तनीय पेड़ों को कैसे लागू करता है?
"लागत यह है कि यह प्रणाली जटिल है और" लाल "मुखौटे बड़े होने पर बहुत मेमोरी का उपभोग कर सकते हैं। वर्तमान में हम यह देखने के लिए प्रयोग कर रहे हैं कि हम कुछ को कम कर सकते हैं या नहीं लाभ खोने के बिना लागत। "
मैं पूछना चाहता हूं कि रिलीज संस्करण के लिए परिणाम क्या था। मैंने Roslyn sources की जांच शुरू कर दी है लेकिन कोड का पालन करने के लिए काफी जटिल है।
मुझे जो दिलचस्पी है वह ऊपर उल्लिखित लागतों के बारे में निम्न स्तर के डिज़ाइन परिणाम हैं।
- लाल/हरे नोड्स के संदर्भ में एक ही संपादन की लागत क्या है?
- अन्य परिचालनों के लिए कौन से अनुकूलन किए गए हैं (उदा। हटाएं, पूर्ववत करें)?
मुझे लगता है कि इसका उपयोग करना आसान है: http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/Syntax/SyntaxNode.cs,849dc6029695ef7b – MarcinJuraszek
इसके अलावा [बीसीएल अपरिवर्तनीय संग्रह] पर एक नज़र डालें (http://channel9.msdn.com/posts/Erik-Meijer-Immo-Landwerth-and-Andrew-Annott-Imututable-Collections-for-NET) जो Roslyn Red/Green पेड़ों से प्रेरित थे। – DaveShaw
@ डेवशॉ, मैंने लिंक पर एक त्वरित नज़र डाली, और वीडियो देखेंगे। हालांकि वर्णन पृष्ठ पेड़ का जिक्र नहीं करता है, लेकिन यह कई अन्य संग्रह प्रकारों का उल्लेख करता है। – bright