मैंने हाल ही में छोटे संरचनाओं की एक श्रृंखला के लिए List<>
बनाम []
पर कुछ मोटा प्रदर्शन किया है। सिस्टम.एरे को हाथों से जीतना प्रतीत होता था इसलिए मैं उसके साथ गया।क्या सिस्टम.एरेरे मूल्य प्रकारों पर मुक्केबाजी करते हैं या नहीं?
यह केवल मेरे लिए आया है कि सिस्टम.एरे में ऑब्जेक्ट प्रकार हैं, इसलिए निश्चित रूप से संरचनाओं के साथ भरने से मुक्केबाजी हो जाएगी?
हालांकि, the MSDN entry for System.Array कहता है:
.नेट फ्रेमवर्क संस्करण 2.0 में, सरणी वर्ग
System.Collections.Generic.IList<T>
,System.Collections.Generic.ICollection<T>
, औरSystem.Collections.Generic.IEnumerable<T>
जेनेरिक इंटरफेस लागू करता है। कार्यान्वयन रन समय पर सरणी के लिए प्रदान किए जाते हैं, और इसलिए प्रलेखन निर्माण उपकरण के लिए दृश्यमान नहीं हैं। नतीजतन, जेनेरिक इंटरफेस ऐरे कक्षा के लिए घोषणा वाक्यविन्यास में प्रकट नहीं होते हैं, और सामान्य इंटरफ़ेस प्रकार (स्पष्ट इंटरफ़ेस कार्यान्वयन) के लिए सरणी कास्टिंग करके केवल इंटरफ़ेस सदस्यों के लिए कोई संदर्भ विषय नहीं हैं। ।
क्या इसका मतलब यह है कि मुक्केबाजी सभी के बाद नहीं होती है? (और मेरे प्रदर्शन परिणामों की व्याख्या करेगा)
अपने प्रदर्शन परिणामों को समझाने के लिए शायद हमें उस कोड को देखना चाहिए जिसका उपयोग आपने प्रदर्शन को मापने के लिए किया था। – Snowbear