के साथ समस्या मैं कुछ ट्रेस जानकारी लॉग इन करने के लिए सी # में एक मल्टीलाइन टेक्स्ट बॉक्स का उपयोग कर रहा हूं। मैं बस AppendText("text-goes-here\r\n")
का उपयोग करता हूं क्योंकि मुझे लाइन जोड़ने की आवश्यकता है।सी # मल्टीलाइन टेक्स्टबॉक्स मेमोरी उपयोग
मैंने इस कार्यक्रम को कुछ दिनों तक चलाया है (बहुत सक्रिय ट्रेस के साथ) और मैंने देखा कि यह बहुत सारी मेमोरी का उपयोग कर रहा था। लंबी कहानी छोटी, ऐसा प्रतीत होता है कि अधिकतम लम्बाई मान के साथ भी बहुत छोटा (256) टेक्स्ट बॉक्स की सामग्री बस विस्तार करती रहती है।
मैंने सोचा कि यह एक फीफो की तरह काम करता है (अधिकतमतम टेक्स्ट को दूर करने वाला सबसे पुराना पाठ फेंक रहा है)। ऐसा नहीं होता है, यह सिर्फ आकार में बढ़ता रहता है। यह स्पष्ट रूप से मेरी स्मृति अपशिष्ट का कारण है। किसी को पता है कि मैं क्या गलत कर रहा हूँ?
जोड़ा गया प्रारंभिक सवाल के बाद कुछ घंटों ... ठीक है, मैं सुझाव नीचे दिए गए कोड की कोशिश की। इसे जल्दी से जांचने के लिए, मैंने बस अपने ऐप में टाइमर जोड़ा और उस टाइमर टिक से अब मैं एक विधि कहता हूं जो अनिवार्य रूप से नीचे दिए गए कोड जैसा ही है। टिक दर अधिक है ताकि मैं प्रक्रिया के स्मृति उपयोग को देख सकूं और तुरंत यह निर्धारित कर सकूं कि कोई रिसाव है या नहीं। नहीं था वह अच्छा था; हालांकि, मैंने इसे अपने आवेदन में रखा और स्मृति उपयोग नहीं बदला (अभी भी लीक)। यह निश्चित रूप से इंगित करता है कि मेरे पास कहीं और रिसाव है :-(हालांकि, अगर मैं बस उस विधि के शीर्ष पर एक वापसी जोड़ता हूं, तो उपयोग स्थिर हो जाता है। इस पर कोई विचार? टाइमर-टिक-इनकोड कोड स्मृति को जमा नहीं करते हैं, लेकिन मेरा वास्तविक कोड (एक ही विधि) करता है। अंतर यह है कि मैं वास्तविक कोड में विभिन्न स्थानों से विधि को बुला रहा हूं। क्या कॉल का संदर्भ किसी भी तरह प्रभावित कर सकता है? (नोट, अगर यह नहीं है पहले से ही स्पष्ट नहीं है, मैं किसी भी माध्यम से .NET विशेषज्ञ नहीं हूं) ...
वहाँ एक कारण है कि आप एक पाठ बॉक्स का उपयोग करने और एक डेटाबेस में इस लॉग इन करें या एक घटना लॉग इन करने के लिए इसे बाहर नहीं लिख कोशिश कर रहे हैं है: टेक्स्ट संलग्न करने का एक सरल कार्य का उपयोग ould? – Thyamine
यह एएसपी.नेट में एक आम समस्या है, क्योंकि मल्टीलाइन टेक्स्ट बॉक्स क्लाइंट-साइड को 'टेक्सटेरिया' एचटीएमएल नियंत्रण के रूप में प्रस्तुत किया जाता है, जो खुशी से अधिकतम लम्बाई जैसे गुणों को अनदेखा करता है। मुझे लगता है कि यह Winforms है, हालांकि? – MusiGenesis
थाइमाइन .. कारण सादगी है। मैं सिर्फ एक कार्यक्रम के कुछ रनटाइम ट्रेस देखने में सक्षम होना चाहता हूं; और मैं उम्मीद कर रहा था कि AppendText() ने फीफो की तरह अभिनय किया था। –