यदि आप किसी ऐप द्वारा उपयोग की जाने वाली कंप्रेस्ड मेमोरी को खाली कर सकते हैं, तो ऐप काम करना बंद कर देगा और क्रैश हो जाएगा। इसलिए रनिंग ऐप्स की कंप्रेस्ड मेमोरी को खाली करने का कोई मतलब नहीं है।
मुझे बेहतर ढंग से समझाएं। मैं एक प्रकार के मीडिया सर्वर का उपयोग करता हूं, 24 घंटे। आमतौर पर प्रयुक्त संपीड़ित मेमोरी 0 होती है, लेकिन हर बार जब कोई किसी फ़ाइल को डाउनलोड करता है, तो यह संपीड़ित मेमोरी में कुछ बेकार एमबी को बढ़ाता है। मुझे पता है कि यह कार्यक्रम का दोष है, लेकिन मुझे इसकी आवश्यकता है। जब तक मैं ऐप को पुनरारंभ नहीं करता, तब तक संपीड़ित मेमोरी का विस्तार होता रहता है।
फिर आपको ऐप में बग को ठीक करना होगा, या ऐप को रिस्टार्ट करना होगा। ऐप के बारे में विशेष ज्ञान के बिना, आप यह निष्कर्ष नहीं निकाल सकते कि संपीड़ित मेमोरी में संग्रहीत डेटा कभी ऐप द्वारा एक्सेस नहीं किया जाएगा। यदि आप उस मेमोरी को हटा देते हैं और ऐप उसे एक्सेस करने की कोशिश करता है, तो यह क्रैश हो जाएगा।
यदि यह वास्तव में मेमोरी लीक है, और मेमोरी फिर से एक्सेस नहीं की जाएगी, तो आप सैद्धांतिक रूप से डिबगर के रूप में प्रक्रिया में संलग्न हो सकते हैं, और फिर मेमोरी सेगमेंट को मुक्त करने के लिए कॉल को बाध्य कर सकते हैं। यह केवल तब ही संभव है जब मेमोरी को mmap के साथ आवंटित किया जाता है - या वैकल्पिक रूप से, अगर brk / sbrk द्वारा आवंटित किया जाता है, केवल अगर लीक की गई मेमोरी मेमोरी क्षेत्र के अंत में है। फिर, यह केवल आवेदन के बारे में विशेष ज्ञान के साथ ही संभव है, और सामान्य तौर पर आपको यह समझने के लिए प्रोग्रामर होने की आवश्यकता होगी कि यह कैसे करना है।
शुक्रिया जकसागोर्ड, मैं आपके द्वारा सुझाए गए रास्ते की कोशिश करूँगा! दुर्भाग्य से मैं सॉफ्टवेयर नहीं बदल सकता क्योंकि यह मेरा नहीं है। निश्चित रूप से मैं यह जांचने से पहले कई परीक्षण करूंगा कि क्या comp.memory का उपयोग नहीं किया जा रहा है, लेकिन सबसे खराब यह हो सकता है कि सॉफ्टवेयर हैंग होता है, कुछ ऐसा ही होगा यदि मैं इसे पुनः आरंभ नहीं करता हूं। तो मैं इसे आज़माने में कोई समस्या नहीं देखता हूँ! एक बार फिर धन्यवाद