2010-12-08 17 views
15

अब, मुझे एहसास है कि इस प्रकार का प्रश्न यहां पहले देखा गया है (विशेष रूप से this - जो मुझे लगता है कि दो वस्तुओं का एक बहुत अच्छा विवरण है)। मेरा सवाल प्रदर्शन के आसपास और अधिक है। मेरे पास कई एक्सएमएल दस्तावेज़ हैं जो आकार में 100 - 300 के ऊपर हैं। मैंने देखा है कि XmlDocument ऑब्जेक्ट की बजाय इस जानकारी को XDocument में लोड करते समय कुछ अंतराल है। क्या इन दो वस्तुओं के बीच कोई गंभीर प्रदर्शन अंतर है? क्या वे एक्सएमएल की सामग्री को अलग-अलग एक्सेस करते हैं? XML की स्ट्रिंग के साथ काम करते समय, जिसे प्राथमिकता दी जाती है, या कोई अंतर होता है। इन ऑब्जेक्ट का अंतिम उपयोग प्रश्न में ऑब्जेक्ट पर क्वेरी (XPath या LINQ, निर्भर करता है) चलाने के लिए है।प्रदर्शन: XDocument बनाम XmlDocument

फिर, यह मुख्य रूप से स्मृति और गति दोनों से संबंधित प्रदर्शन का सवाल है।

उत्तर

20

एक्सएमएल डॉक्यूमेंट दस्तावेज़ ऑब्जेक्ट मॉडल का एक पूर्ण रूप से प्रबंधित कार्यान्वयन है। एमएसएक्सएमएल लाइब्रेरी जैसे किसी भी COM घटक के साथ कोई इंटरऑप नहीं है। कोई दावा अन्यथा पूरी तरह से फर्जी है। एपीआई का पूरा एक्सलिंक सेट .NET Framework में LINQ के परिचय के साथ एक्सएमएल के साथ बातचीत करने के लिए एक दोस्ताना तरीका के रूप में आया था।

आप प्रदर्शन को अधिकतम करने की कोशिश कर रहा है और XPath का उपयोग कर सहज महसूस कर रहे रहे हैं, XmlDocument का उपयोग कर और compiled XPath expressions उपयोग करके देखें।

+2

और LINQ जादूगर रूप से प्रदर्शन में सुधार नहीं करता है। लक्ष्य प्रोग्रामर उत्पादकता बढ़ाने के लिए है, जो यह करता है, तो आप पहले से ही जानते हैं और LINQ तुम नहीं जानते हो सकता है "पुराने" XML APIs ढांचा प्रदान करता है - और न ही LINQ का लक्ष्य है। –

4

XmlReader .NET में सबसे कम एपीआई है जो दृश्यों के तहत .NET उपयोग में अन्य सभी एक्सएमएल एपीआई है। स्वाभाविक रूप से इसका मतलब है कि यह सौदा करने के लिए सबसे कठिन है, साथ ही सबसे तेज़। यह एक स्ट्रीमिंग एपीआई है, तो यह स्मृति के लिए सबसे उपयुक्त भी है।

एक्सएमएल को XmlDocument और XDocument Linq उर्फ ​​बीच

, यहाँ कुछ कच्चे नंबर दिए गए हैं: https://www.altamiracorp.com/blog/employee-posts/performance-linq-to-sql-vs, http://blogs.msdn.com/b/codejunkie/archive/2008/10/08/xmldocument-vs-xelement-performance.aspx

जो दोनों XDocument वर्ग तेजी से और अधिक कुशल जा रहा है/लगता है। प्रोग्रामर उत्पादकता/दक्षता को भी नजरअंदाज नहीं किया जाना चाहिए। व्यक्तिगत रूप से मुझे XDocument के साथ काम करना आसान लगता है।

संबंधित मुद्दे