मैं कुछ धीमी गति से चलने वाले कोड को दोबारा करने की कोशिश कर रहा हूं जो कई डेटाटेबल्स के नेस्टेड लूप का उपयोग करके एक्सएमएल लिखता है। मैंने पढ़ा है कि xml लिखने के लिए linq का उपयोग तेजी से होगा। मैं linq में अच्छी तरह से परिचित नहीं हूँ, तो मैं यहाँ कुछ मदद पाने की उम्मीद कर रहा था।वेब सेवा से डेटाटेबल्स को XML में लिखने का सबसे अच्छा तरीका XML में?
कुछ चीजों को मुझे जिक्र करने की आवश्यकता है कि वर्तमान आर्किटेक्चर एक webservice का उपयोग करता है जो डेटाटेबल्स में हमें डेटा देता है। फिर हम डेटाटेबल्स (इसके माध्यम से) के माध्यम से जाते हैं, और कई ऐसे हैं जो कई नेस्टेड लूप का परिणाम देते हैं।
उदाहरण:
dt1 = Webservice.getStuff();
for each (datarow r1 in dt1.Rows) {
dt2 = Webservice.getMoreStuff(r1[col1], r1[col2]);
// write out some xml
for each (datarow r2 in dt2.Rows) {
dt3 = Webservice.getEvenMoreStuff(r2[col1], r2[col2]);
// write out more xml
for each (datarow r3 in dt3.Rows) {
// write out more xml
}
}
}
आप देख सकते हैं स्पष्ट कारणों के लिए, यह बहुत धीमी है। क्या linq का उपयोग करके इसे गति देने का कोई तरीका है? आप इस बात को दोबारा करने के लिए एक और अधिक कुशल दृष्टिकोण के रूप में क्या सुझाव देंगे? मुझे खेद है कि विवरण अस्पष्ट हैं ...
मैं किसी भी मदद की पेशकश की सराहना करता हूं।
यहां धीमा हिस्सा वेब सेवा के लिए कॉल प्रतीत होता है, न कि XML लेखन भाग। वेब सेवा में धीमी, उच्च विलंबता वाली अंगूठी है =) – Jens
सिर्फ एक विचार: वर्तमान कोड स्निपेट दिया गया है कि XML कैसे बनाया गया है इसका कोई विवरण नहीं है, साथ ही नेटवर्क पर बड़ी मात्रा में डेटा भेजा जा सकता है, बहुत से सर्वर कॉल और क्लाइंट डेटा टेबल की साइड आबादी - सभी प्रदर्शन हिट का कारण बन सकता है; इसलिए यह मानने का कोई स्पष्ट कारण नहीं है कि एक्सएमएल लेखन एक बाधा है। –
क्या आप एक और getStuff विधि को फिर से लिख सकते हैं या जोड़ सकते हैं जो आपको webservice कॉल घोंसले के बजाय पूर्ण परिणाम देता है? – jmservera