का कारण बनता है मेरे पास एक साइटकोर एप्लिकेशन है जहां मुझे किसी अन्य सिस्टम से लूप में बड़ी संख्या में साइटकोर आइटम बनाने की आवश्यकता है। नीचे मेरा परीक्षण उद्देश्य पाश है;साइटकोर आइटम्स की बड़ी मात्रा बनाना मेमोरी लीक
using (new Sitecore.SecurityModel.SecurityDisabler())
{
for (int i = 0; i < 20000; i++)
{
Item newItem = MyTemplateItem.CreateItemFrom(DateTime.Now.Ticks.ToString(), myParentItem);
newItem.Editing.BeginEdit();
newItem.Fields["Title"].Value = Guid.NewGuid().ToString();
newItem.Editing.EndEdit();
}
}
इस पाश चल रहा है जब और जब तक कार्य प्रबंधक में देख, प्रक्रिया स्मृति उपयोग समय के साथ बढ़ रही है।
साइटकोर Item
कक्षा ने IDisposable
इंटरफ़ेस लागू नहीं किया है, इसलिए मैं बनाए गए आइटम का फ़ाइनलाइज़र नहीं कह सकता।
मैं इस मेमोरी रिसाव से कैसे बच सकता हूं?
पीएस: मैं आईआईएस प्रक्रिया मेमोरी रिसाव को बाईपास करने के लिए इस ऑपरेशन को करने के लिए एक विंडोज़ एप्लिकेशन का उपयोग कर रहा हूं, जहां साइटकोर अपने कैश अपडेटिंग और इंडेक्स बिल्डिंग करता है जो इस प्रक्रिया के अंत में किया जाना चाहिए।
क्या आप वाकई वास्तव में एक रिसाव हैं? आप एक ऐसा फ़ंक्शन कर रहे हैं जो स्मृति को आवंटित करना और लूप में ऐसा करना आवश्यक है। सिर्फ इसलिए कि प्रक्रिया मेमोरी बढ़ जाती है इसका मतलब यह नहीं है कि यह एक रिसाव है। क्या स्मृति कभी नीचे नहीं जाती है? – ddysart
मुझे लगता है कि मेरी शब्दावली सही है, स्मृति बढ़ती जा रही है और यदि रैम भरा हुआ है, तो पीसी पुनरारंभ हो जाता है। यह एक स्मृति रिसाव है। मैंने लूप को लगभग एक घंटे तक निगरानी रखी है। –