मैंने कुछ संग्रह वस्तुओं (शब्दकोश, सूची) के खिलाफ लिंक का उपयोग किया है। इसलिए यदि मैं मानदंडों के आधार पर आइटम चुनना चाहता हूं तो मैं एक लिंक क्वेरी लिखता हूं और फिर linq ऑब्जेक्ट को गिनती करता हूं। तो मेरा सवाल यह है कि लिंक मुख्य संग्रह को लूपिंग को समाप्त कर रहा है और परिणामस्वरूप प्रदर्शन में सुधार हुआ है?क्या LINQ लूपिंग को समाप्त करके प्रदर्शन को बढ़ाता है?
उत्तर
बिलकुल नहीं। LINQ से ऑब्जेक्ट्स आंतरिक रूप से loops - यह और कैसे काम कर सकता है?
दूसरी ओर, LINQ अधिक कुशल कुछ दृष्टिकोण से आप ले सकता है, डेटा आदि तीसरे ओर स्ट्रीमिंग केवल जब यह आवश्यक है
से है, यह अविवेक की अतिरिक्त परतों (शामिल सभी इटरेटर आदि) जो प्रदर्शन पर कुछ मामूली प्रभाव डालेगा।
आह! मैं जानता था * आपके पास तीन हाथ थे। –
तो मुझे लगता है कि लिंक-टू-ऑब्जेक्ट्स 'असामान्य' परिदृश्यों में अक्षम हैं। – NLV
ओह गौड ... यह फिर से नहीं। @ एनएलवी, आप अक्षम कैसे मात्राबद्ध करते हैं? यह देखते हुए कि कोडर समय में हार्डवेयर (यहां तक कि किराए पर हार्डवेयर) और अधिक समय की बचत होती है जो लिंक प्रदान करता है ... इस तथ्य के साथ-साथ आमतौर पर लगभग 9 0% कोड का प्रदर्शन गैर-प्रदर्शन महत्वपूर्ण होता है, मैं कहूंगा कि इसका उपयोग नहीं कर रहा है linq अक्षम है। – spender
समस्या नहीं है। LINQ खुद को terse (उम्मीद है) पठनीय कोड करने के लिए उधार देता है।
कवर के तहत यह लूपिंग है, जब तक बैकिंग डेटा संरचना स्कैनिंग से अधिक कुशल खोज एल्गोरिदम का समर्थन नहीं करती है।
"जब तक बैकिंग डेटा संरचना स्कैनिंग की तुलना में अधिक कुशल खोज एल्गोरिदम का समर्थन नहीं करती है" - यह सामान्य रूप से सत्य नहीं है, जब तक कि अनुकूलन * विशेष रूप से * उस क्वेरी ऑपरेटर में बनाया गया न हो। उदाहरण के लिए, जहां तक मुझे पता है, 'Skip' को सूचियों के लिए अनुकूलित नहीं किया गया है। और वर्तमान में किसी संग्रह के लिए ऑब्जेक्ट क्वेरी में LINQ "हुक" करने का कोई तरीका नहीं है। – Ani
जैसा कि मैंने कहा "जब तक ..." –
मेरा मुद्दा यह है कि बैकिंग डेटा संरचना * इसका समर्थन कर सकती है, लेकिन LINQ से ऑब्जेक्ट्स इस समर्थन का उपयोग नहीं कर सकते हैं। – Ani
नहीं, वास्तव में यदि आप LINQ से SQL का उपयोग कर रहे हैं, तो प्रदर्शन थोड़ा खराब होगा क्योंकि LINQ ado.net स्टैक के शीर्ष पर एक अतिरिक्त परत है।
यदि आप वस्तुओं पर linq का उपयोग कर रहे हैं। linq द्वारा किए गए अनुकूलन हैं, सबसे महत्वपूर्ण एक "यील्ड" है जो उत्पन्न होने के बाद एक आईनेमरेबल से परिणाम उत्पन्न करना शुरू कर देता है। जो मानक दृष्टिकोण से बेहतर है, जिसे भरने के लिए एक सूची की प्रतीक्षा करनी है और इसे फिर से चालू करने के लिए फ़ंक्शन द्वारा लौटाया गया है।
LINQ से SQL: जब तक दोनों प्रश्न समान होते हैं तब तक सत्य होता है। यदि आप फ़िल्टरिंग करने के लिए ऑब्जेक्ट्स के लिए LINQ का उपयोग करके सबकुछ वापस खींच रहे हैं, तो यह धीमा हो सकता है। LINQ से ऑब्जेक्ट्स: यदि आपके पास पहले से ही एक प्री-भरी सूची है, तो यह तेज़ नहीं होगा। यह सब वास्तव में दृश्यों के पीछे क्या चल रहा है इस पर निर्भर करता है। –
जब आप सीधे क्वेरी का उपयोग करते हैं, तो आप अभी भी पूरे संग्रह पर लूप करते हैं। आप बस सब कुछ नहीं देखते हैं, क्योंकि क्वेरी केवल आपके फ़िल्टर से मेल खाने वाले तत्वों को वापस कर देगी। कुल प्रदर्शन शायद उन हिट किए गए इटरेटर्स की वजह से भी हिट लेगा। जब आपने अपने क्वेरी परिणाम पर ToList() को बुलाया, और फिर इस परिणाम का कई बार उपयोग किया, तो आप प्रदर्शन के अनुसार बेहतर होंगे।
- 1. सी #। क्या पहचानकर्ता नाम छोटा करना किसी एप्लिकेशन के कुल रन-टाइम प्रदर्शन को बढ़ाता है?
- 2. LINQ जुड़ता है - प्रदर्शन
- 3. क्या कैशिंग हमेशा प्रदर्शन को बढ़ाती है?
- 4. क्या सत्र आईडी रोटेशन सुरक्षा को बढ़ाता है?
- 5. कौशल बढ़ाता है मुझे क्या सीखना चाहिए?
- 6. पायथन में क्या बढ़ाता है?
- 7. कंप्यूटर 2 संख्याओं को कैसे बढ़ाता है?
- 8. क्या कसकर लूपिंग खराब है?
- 9. linq foreach प्रदर्शन
- 10. linq से xml प्रदर्शन
- 11. इन-मेमोरी LINQ प्रदर्शन
- 12. एसक्यूएल लूपिंग के लिए कर्सर का विकल्प क्या है?
- 13. LINQ का उपयोग करके लूपिंग किए बिना इकाई ढांचे में एकाधिक रिकॉर्ड कैसे हटाएं?
- 14. क्या obfuscation प्रदर्शन को प्रभावित करता है?
- 15. लूपिंग
- 16. Linq गणना पद्धति और प्रदर्शन
- 17. क्या LINQPad में LINQ का उपयोग करके संग्रहीत प्रक्रिया को कॉल करना संभव है?
- 18. क्या LINQ का उपयोग करके एक शब्दकोश को एकत्रित करने का कोई बेहतर तरीका है?
- 19. ओपनसीवी - imread(), imwrite() पीएनजी के आकार को बढ़ाता है?
- 20. LINQ का उपयोग करके 2 सूचियों को कैसे जोड़ें?
- 21. एक LINQ क्वेरी पर धीमी foreach() - ToList() प्रदर्शन को बढ़ावा देता है - यह क्यों है?
- 22. LINQ का उपयोग करके दो सूचियों को कैसे मर्ज करें?
- 23. linq
- 24. क्या भाषाओं में लूपिंग संरचना नहीं है?
- 25. एंड्रॉइड व्यूफ्लिपर को लूपिंग से कैसे रोकें?
- 26. डब्ल्यूपीएफ कॉम्बोबॉक्स प्रदर्शन बड़े मुद्दों को बाध्य करके
- 27. टाइमआउट को LINQ से SQL में SqlExceptions की अवधि समाप्त हो गई है?
- 28. बढ़ाता जावा
- 29. क्या कक्षा में सुपर() को कॉल करना बुरा व्यवहार है जो कुछ भी नहीं बढ़ाता है?
- 30. बड़े संग्रह के लिए LINQ प्रदर्शन
LINQ जादू नहीं है। –
मैंने देखा कि किसी ने एक टोपी से एक IENumerable खींच लिया ..... –