.net - Do LINQ queries have a lot of overhead? -
एक IEnumerable & lt; T & gt;
हल्के या हेवीवेट पर सरल LINQ क्वेरीज़ हैं? वे के लिए
या foreach
लिपियों के हाथ से कैसे लिखते हैं? उदाहरण के लिए:
var कम नम्बर = n से संख्या में जहां n & lt; के लिए एक सामान्य दिशानिर्देश है जब LINQ versus मैन्युअल खोज को पसंद करते हैं? 5 चुनें n;
की तुलना में:
सूची & lt; int & gt; कम संख्या = नई सूची & lt; int & gt; (); अग्रगण (संख्या में एनएन) {if (n & lt; 5) {lowNums.Add (n); }}
मैं LINQ के बारे में एक सहकर्मी से बात कर रहा था और उसने इसे इस्तेमाल करने के बारे में कुछ झिझक व्यक्त किया उन्होंने यह अनुमान लगाया कि LINQ कर सकते हैं सब कुछ का समर्थन करने के लिए "पर्दे के पीछे" चलने में बहुत कुछ हो सकता है।
क्या उपर्युक्त उदाहरणों के बीच एक महत्वपूर्ण प्रदर्शन अंतर है? क्या कोई अच्छा संसाधन हैं जो संग्रह पर LINQ के प्रदर्शन के बारे में बात करते हैं? कुछ सरल प्रतीत होता हुआ पुराने लेखों के लिए एक सरल Google खोज।
लेखकों ने के लिए, foreach, सूची & lt; T & gt; .FindAll
, और LINQ क्वेरीज़ कि सभी ने एक ही काम किया प्रश्नों के निर्माण के आधार पर, LINQ केवल 10% धीमी थी जैसा कि वे इसे डालते हैं,
LINQ मुफ्त में नहीं आता है।
LINQ एक जटिल विषय है, लेकिन इसके आधार पर आप इसके साथ क्या करते हैं, यह को बहुत अधिक उपरि जोड़ना होगा आम तौर पर जहां तक संभव हो, स्थगित निष्पादन पर निर्भर होने के लिए लिनक्स को बनाया गया है, जब तक आप वास्तव में इसकी ज़रूरत नहीं होती तब तक मेमोरी और सीपीयू को बचाया जा सके।
हालांकि, आपको पता होना चाहिए कि अलग-अलग क्वेरी ऑपरेटर कैसे काम करते हैं, क्योंकि किसी क्वेरी के प्रवाह को बदलने से यह कितना प्रभावी हो सकता है कि इसे कैसे निष्पादित किया जाता है। आपके द्वारा बताए गए सामान्य प्रश्न आमतौर पर कोई समस्या नहीं हैं, लेकिन रिवर्स ()
और रूपांतरण ऑपरेटर जैसे ऑपरेटर कुछ हलचल फेंक सकते हैं क्योंकि उन्हें परिणाम सेट के तत्काल पुनरावृत्ति की आवश्यकता होती है। अक्सर एक ही प्रश्न लिखने के कई तरीके होते हैं, और आप इसे कैसे बनाते हैं इसके आधार पर , आप न्यूनतम प्रदर्शन हानि देख रहे हैं या आप इसे दो बार धीमा कर सकते हैं समतुल्य लूप के रूप में।
यह समझदारी और संक्षिप्तता यह मेरे दिन के अधिकांश दिन के लिए हालांकि किसी भी प्रदर्शन के विचारों को अतिरेगा प्रदान करता है हालांकि, कभी भी पूर्व-अनुकूल नहीं होता!
Comments
Post a Comment