System.Diagnostics.StackFrame का प्रदर्शन विंडोज 10 में खराब हो जाता है

यदि आप Windows 10 या .NET Framework 4.7.1 में अपग्रेड करने के बाद, और जब आप System.Diagnostics.StackFrame वर्ग का उपयोग करने वाले (System.Diagnostics.StackFrame).NET Framework अनुप्रयोगों को चलाते हैं, तो आपको प्रदर्शन में उल्लेखनीय कमी दिखाई देती है , तो यह पोस्ट आपको रुचिकर लग सकती है। हम कारण को देखेंगे, और फिर त्रुटि के लिए ज्ञात सुधारों की पेशकश करेंगे।

System.Diagnostics.StackFrame प्रदर्शन में गिरावट

System.Diagnostics.StackFrame प्रदर्शन में गिरावट

.NET Framework 4.7 या पुराने संस्करणों पर चलने वाले स्वीकार्य प्रदर्शन वाला कोई अनुप्रयोग .NET Framework 4.7.1 पर चलते समय अधिक धीरे-धीरे निष्पादित होता है । अनुप्रयोग आमतौर पर StackFrame पर भरोसा करते हैं जब वे .NET अपवाद फेंकते हैं। यदि यह उच्च दर (प्रति सेकंड 10 से अधिक घटनाएं) पर होता है, तो एप्लिकेशन महत्वपूर्ण रूप से (दस गुना) धीमा हो सकते हैं और पहले की तुलना में काफी धीमी गति से चल सकते हैं।

System.Diagnostics.StackFrame के प्रदर्शन में गिरावट का कारण(Cause of the System.Diagnostics.StackFrame performance degrade)

विंडोज 10(Windows 10) में .NET फ्रेमवर्क 4.7.1(.NET Framework 4.7.1) ने स्टैक ट्रेस में फाइल और लाइन नंबर की जानकारी दिखाने के लिए पोर्टेबल पीडीबी(PDB) फाइल फॉर्मेट का पता लगाने और पार्स करने के लिए समर्थन जोड़ा । इस परिवर्तन के भाग के रूप में, स्टैक ट्रेस में प्रत्येक फ़ंक्शन का परिभाषित मॉड्यूल यह निर्धारित करने के लिए जांचा जाता है कि क्या वह मॉड्यूल पोर्टेबल पीडीबी(PDB) प्रारूप का उपयोग करता है। आंतरिक कैशिंग नीति में कुछ अंतरों के कारण(Due) , क्लासिक विंडोज पीडीबी(Windows PDBs) की खोज में खर्च किए गए पिछले .NET फ्रेमवर्क संस्करणों की तुलना में रनटाइम (Framework)पोर्टेबल पीडीबी(Portable PDBs) की खोज में कहीं अधिक समय व्यतीत करता है ।

यह स्वरूपित स्टैक ट्रेस को पहले की तुलना में अधिक धीरे-धीरे उत्पन्न करने का कारण बनता है।

यह समस्या फेंके गए अपवादों की संख्या नहीं बदलती है। हालांकि, यह उन अपवादों को संभालने के लिए अनुप्रयोगों की क्षमता को काफी कम करता है।

IKVM लाइब्रेरी का उपयोग करने वाले अनुप्रयोग इस समस्या से प्रभावित होने के लिए जाने जाते हैं यदि वे असेंबली के लिए जांच करते हैं। असेंबली के लिए जांच अपवाद के कारण जाना जाता है।

System.Diagnostics.StackFrame(Fix System.Diagnostics.StackFrame) के प्रदर्शन में गिरावट की समस्या को ठीक करें

इस समस्या को हल करने के लिए, Microsoft निम्न विधियों में से किसी एक का उपयोग करने की अनुशंसा करता है।

1] स्टैकफ़्रेम के लिए एक अलग कंस्ट्रक्टर का उपयोग करें जो एक बूलियन तर्क लेता है(1] Use a different constructor for StackFrame that takes a Boolean argument)

यह पसंदीदा समाधान है।

यदि एप्लिकेशन डेवलपर अपने एप्लिकेशन में परिवर्तन करने में सक्षम हैं, तो System.Diagnostics.StackTrace को कॉल करें । (call the) स्रोत जानकारी को कैप्चर करने से बचने के लिए झूठे तर्क का उपयोग करके #ctor( बूलियन ) निर्माता। (Boolean)यह कोड के उस भाग से बचा जाता है जिसमें प्रदर्शन कम हो जाता है।

2] रोलबैक या नवीनतम विंडोज 10 संस्करण में अपग्रेड करें(2]  Rollback or upgrade to the latest Windows 10 version)

यदि आप इस समस्या का सामना कर रहे हैं और आप वर्तमान में विंडोज 10 का नवीनतम संस्करण नहीं चला रहे हैं ,(Windows 10) तो इस पद्धति में, पिछले संस्करण में वापस रोल करें / विंडोज 10 (Windows 10)upgrade to the latest version/build  में अपग्रेड करें या अपग्रेड करें । साथ ही अपने कंप्यूटर से .NET Framework 4.7.1 की स्थापना रद्द करें और फिर पिछले संस्करण या .NET Framework के नवीनतम संस्करण को (.NET Framework)डाउनलोड(download) और इंस्टॉल करें ।

Hope this helps!



About the author

मैं एक विंडोज 10 तकनीशियन हूं और कई वर्षों से व्यक्तियों और व्यवसायों को नए ऑपरेटिंग सिस्टम का लाभ उठाने में मदद कर रहा हूं। मेरे पास माइक्रोसॉफ्ट ऑफिस के बारे में ज्ञान का खजाना है, जिसमें विभिन्न उपयोगकर्ताओं के लिए उपस्थिति को अनुकूलित करने और एप्लिकेशन को वैयक्तिकृत करने का तरीका शामिल है। इसके अतिरिक्त, मैं अपने कंप्यूटर पर फ़ाइलों और फ़ोल्डरों को एक्सप्लोर करने और खोजने के लिए एक्सप्लोरर ऐप का उपयोग करना जानता हूं।



Related posts