के मेमोरी उपयोग को कम करने के लिए कैसे करें मैं WPF का उपयोग करके सी # में लिखे गए एक छोटे बुकमार्क प्रबंधन ऐप पर काम कर रहा हूं। यह सिर्फ सिस्टम ट्रे में बैठता है और 99% समय निष्क्रिय है। हाल ही में मैंने टास्क मैनेजर में देखा और पाया कि यह लगभग 25 मेगाहर्ट्ज मेमोरी का उपयोग करता है (और पहली बार इसे सक्रिय करने से पहले लगभग 12 मेग्स) जो मैंने सोचा था कि एक ऐप के लिए थोड़ा अधिक था जो ज्यादातर समय नहीं करता था। इससे मुझे आश्चर्य हुआ कि स्मृति उपयोग को कम करने के कोई तरीके हैं, उदाहरण के लिए, वैकल्पिक रूप से WPF सुविधाओं को अक्षम करना।एक WPF ऐप
मैंने एक तथ्य खोजा है जो कुछ ले सकता है, हालांकि मुझे इसका लाभ उठाने का कोई तरीका नहीं पता है। .NET में थ्रेड प्रत्येक के करीब एक मेग लेते हैं, और यह पता चला है कि मेरा ऐप 6/12 धागे (पहली बार सक्रिय होने से पहले और बाद में) का उपयोग करता है। यह मेरे आधे मेमोरी उपयोग के लिए जिम्मेदार है जो महत्वपूर्ण है। मैं सीधे किसी भी नए धागे को नहीं खींचता, लेकिन मुझे नहीं पता कि डब्ल्यूपीएफ, साथ ही साथ .NET के अन्य हिस्सों में विभिन्न कार्यों के लिए थ्रेड का उपयोग किया जाता है, इसलिए मुझे इसके बारे में कुछ भी करना मुश्किल लगता है। उन चीजों के लिए ईवेंट का उपयोग करना जो सीधे जीयूआई से संबंधित नहीं हैं, उदाहरण के लिए यह नए धागे को जन्म देता है?
तो मुझे लगता है कि मेरा प्रश्न दो गुना है, आप स्मृति उपयोग को कैसे कम कर सकते हैं .NET/WPF अनुप्रयोग सामान्य रूप से और आप कैसे थ्रेड की संख्या को कम कर सकते हैं? ध्यान दें कि मैं this answer में लाए गए छोटे विवरणों के बारे में बहुत कुछ नहीं सोच रहा हूं, बल्कि अपने पूरे एप्लिकेशन में कम मेमोरी उपयोग के लिए डिज़ाइन कैसे करें।
मैं Vista 64-बिट चला रहा हूं। ईमानदार होने के लिए, यह वास्तव में ऐसा कुछ नहीं है जिसे मैं बहुत ज्यादा चिंता करता हूं। मेरा मतलब है, मौजूदा हार्डवेयर कीमतों के साथ, स्मृति व्यावहारिक रूप से मुक्त है - 2 जीबी मेमोरी स्टिक के साथ मेरे प्रोग्राम की प्रत्येक प्रति को बंडल करना लगभग संभव है;) –
यदि आप इसे टर्मिनल सेवाओं पर अनुकूलित करने के लिए कहा जाता है, तो आप इसके बारे में चिंता करेंगे, सर्वर व्यवस्थापक डॉन 30 निष्क्रिय प्रक्रियाओं को लगभग 1 जीबी रैम बर्बाद नहीं करना चाहते हैं। –
आप भी चिंता करेंगे जब कई अन्य समान ऐप्स चल रहे हैं, प्रत्येक व्यक्ति बहुत सारी रैम का उपयोग कर रहा है। इसकी सड़कों की तरह, और सड़कों का निर्माण करें और आप बस अधिक भीड़ के साथ खत्म हो जाते हैं, अधिक रैम खरीदते हैं और आपको लगता है कि आपके बॉक्स को अभी भी और अधिक चाहिए। – gbjbaanb