من این قضیه رو توی TaskManager چک می کنم، و می بینم تا وقتی که کل برنامه بسته نشه و خود سیستم عامل منابع داده شده رو پس نگیره، خالی نمی شن.مي تونيد به من بگين شما بر چه اساسي مي گين وقتي حتي شئ رو Destroy مي كنيد، حافظه اي خالي نميشه؟ مي خوام ببينم شما مطمئنيد كه حافظه خالي نميشه؟
بستگی به فایلی که باز می کنه داره، مقدار ثابتی نیستش.هر فايل چقدر فضا از كامپيوتر شما مي گيره. دقيقاً ذكر كنيد كه بعد از فراخواني چند مگابايت فايل، چند مگابايت از فضاي Ram شما پر ميشه؟
4 گیگ رم رو دستگاه منه.كل فضاي Ram شما چقدر هست؟
این کار رو هم کردم ولی جواب نگرفتم، تو زمان اجرا یه فرم ساختم، کامپ.ننت رو هم توش ساختم، فایل رو باز کردم، فایل رو بستم، کامپوننت و فرم رو آزاد کردم ولی مشکل باز هم تا موقع خروج کامل برنامه وجود داشت.براي امتحان بياين و كل فرمتون كه توي اون، كامپوننتي كه فايلها رو لود مي كنه، رو Destroy كنيد. ببينيد فضايي خالي ميشه يا نه. شايد اين كامپوننت وابسته به Parent خودش باشه.
این ابزار و چند تا ابزار مشابه رو تهیه کردم، واقعا چیزهای خوبی بودن، ولی تو این مشکل به من کمک خاصی نکردندمخصوصا مورد 2 و 3. همچنین اگر تونستید ابزار MemProof رو تهیه کنید. برای مشاهده ی پردازش ها مفید هست
نه سورسش رو ندارم.اگر سورس دارید باید متد های destructor رو ببینید و کنترل کنید که آیا به درستی عمل میکنند یا خیر.
در ضمن من حتی StackSize رو هم تا جای ممکن افزایش دادم که منابع بیشتری از سیستم عامل درخواست کنه.