मुझे लगता है कि डायरेक्ट फ्री करना सबसे अच्छा है। अनिर्धारित व्यवहार सबसे खराब चीज है, इसलिए यदि आपके पास पहुंच है जबकि यह अभी भी आपकी प्रक्रिया में परिभाषित है, तो इसे करें, बहुत सारे अच्छे कारण हैं जो लोगों ने इसके लिए दिए हैं।
जहां तक, या चाहे, मैंने पाया कि W98 में, असली सवाल 'कब' था (मैंने इस पर जोर देने वाली पोस्ट नहीं देखी थी)। एक छोटा सा टेम्प्लेट प्रोग्राम (मिडी SysEx इनपुट के लिए, विभिन्न मॉलोकैड स्पेस का उपयोग करके) WndProc के WM_DESTROY बिट में मेमोरी को फ्री करेगा, लेकिन जब मैंने इसे एक बड़े प्रोग्राम में ट्रांसप्लांट किया तो यह बाहर निकलने पर क्रैश हो गया। मुझे लगता है कि इसका मतलब है कि मैं मुक्त करने की कोशिश कर रहा था कि ओएस पहले से ही बड़ी सफाई के दौरान मुक्त हो गया था। अगर मैंने इसे WM_CLOSE पर किया, तो विनास्टविंडो () कहा जाता है, यह सब ठीक काम करता है, तत्काल स्वच्छ निकास।
हालांकि यह बिल्कुल मिडी बफ़र्स जैसा नहीं है, इसमें समानता है कि प्रक्रिया को अक्षुण्ण रखना, पूरी तरह से साफ करना, फिर बाहर निकलना सबसे अच्छा है। मामूली मेमोरी चंक्स के साथ यह बहुत तेज़ है। मैंने पाया कि कई छोटे बफ़र्स ने ऑपरेशन में बहुत तेजी से काम किया और कम बड़े लोगों की तुलना में सफाई की।
अपवाद मौजूद हो सकते हैं, जैसा कि किसी ने कहा कि जब डिस्क पर स्वैप फ़ाइल से बड़ी मेमोरी चंक्स से बचने से बचते हैं, लेकिन यहां तक कि अधिक, और छोटे, आवंटित स्थानों को रखकर कम से कम किया जा सकता है।