मेरे पास सूची है जिसमें 150 के तत्व हैं। काम का औसत समय इंडेक्सऑफ() (4) से 4 गुना कम है। मैंने int की सूची का उपयोग करने की कोशिश की। स्ट्रिंग्स इंडेक्स की सूची के लिए थोड़ा तेज है।सूची <T> क्यों है IndexOf() सूची <T> से बहुत तेज है।()?
मुझे केवल एक मुख्य अंतर मिला, यह विशेषता लक्षित हैचिंगऑप्टऑट। MSDN बताता है:
इंगित करता है कि जो करने के लिए इस विशेषता लागू किया जाता है .नेट फ्रेमवर्क वर्ग पुस्तकालय विधि सर्विसिंग रिलीज से प्रभावित होने की संभावना नहीं है, और इसलिए मूल छवि जेनरेटर (NGen) छवियों भर में inlined किए जाने योग्य है।
क्या यह विशेषता इस तरह के व्यवहार का कारण हो सकती है? और विधि क्यों नहीं है() में ऐसी विशेषता है?
अग्रिम धन्यवाद।
संपादित करें:
List<int> list = CommonHelper.GetRandomList(size); long min = long.MaxValue; long max = 0; long sum = 0; foreach (var i in list) { m_stopwatch.Reset(); m_stopwatch.Start(); list.Contains(i); // list.IndexOf(i); m_stopwatch.Stop(); long ticks = m_stopwatch.ElapsedTicks; if (ticks < min) min = ticks; if (ticks > max) max = ticks; sum += ticks; } long averageSum = sum/size;
संपादित करें 2:
मैं एक ही लिखा है
मैं इस तरह कोड कुछ है इंडेक्सऑफ() के रूप में कोड और यह कंटेनर() से धीमा काम करता है।
इस मामले में डेटा क्या है की एक 150k आकार सेट के साथ कुछ अंतर का कारण हो सकता? –
और नहीं - मुझे नहीं लगता कि विशेषता के साथ इसके साथ कुछ लेना देना है। –
मैं int और स्ट्रिंग का उपयोग करता हूं, व्यवहार समान है। –