View Full Version : آزاد سازی حافظه
1485159
یک شنبه 09 خرداد 1389, 21:21 عصر
سلام
مگه وقتی که برنامه ما بسته میشه همهی حافظه اختصاص داده شده به اون آزاد نمیشه؟
پس چه لزومی داره که هر شی ای که ایجاد میکنیم باید free هم کنیم؟
مهران رسا
یک شنبه 09 خرداد 1389, 21:52 عصر
سلام
مگه وقتی که برنامه ما بسته میشه همهی حافظه اختصاص داده شده به اون آزاد نمیشه؟
پس چه لزومی داره که هر شی ای که ایجاد میکنیم باید free هم کنیم؟
به دلیل اینکه تا زمان باز بودن برنامه حافظه رو نیاز داریم . این موضوع در برنامه های بزرگ بیشتر معنا پیدا میکنه .
1485159
یک شنبه 09 خرداد 1389, 21:55 عصر
به دلیل اینکه تا زمان باز بودن برنامه حافظه رو نیاز داریم . این موضوع در برنامه های بزرگ بیشتر معنا پیدا میکنه .
این تنها دلیلشه؟
حسین شهریاری
یک شنبه 09 خرداد 1389, 22:56 عصر
سلام
یک پروسه قبل از اتمام (End Process) و خارج شدن از سرویس شدن باید تمامی منابعش را آزاد نماید تا این منابع بتوانند در اختیار سایر پروسه ها قرار بگیرند.یکی از این منابع حافظه است.
موفق باشید
1485159
یک شنبه 09 خرداد 1389, 23:14 عصر
سلام
یک پروسه قبل از اتمام (End Process) و خارج شدن از سرویس شدن باید تمامی منابعش را آزاد نماید تا این منابع بتوانند در اختیار سایر پروسه ها قرار بگیرند.یکی از این منابع حافظه است.
موفق باشید
خوب حافظه که خودش هنگام بسته شدن برنامه آزاد میشه!
SAASTN
یک شنبه 09 خرداد 1389, 23:30 عصر
این تنها دلیلشه؟
البته Free خودش در نهایت Destroy رو فراخونی می کنه که ممکنه توش کارهای دیگه ای غیر از آزادسازی حافظه هم انجام شده باشه.
البته حتما منظورتون Free کردن اشیاء موقع بستن برنامه است دیگه؟ چون اگه در حین اجرای برنامه اشیائی رو بسازیم و موقعی که کارمون باهاشون تموم شد آزادشون نکنیم خوب خود برنامه با کمبود حافظه روبرو میشه.
1485159
یک شنبه 09 خرداد 1389, 23:35 عصر
موقعی که کارمون باهاشون تموم شد آزادشون نکنیم خوب خود برنامه با کمبود حافظه روبرو میشه.
واسه سیستم عامل که مشکلی پیش نمیاد؟
SYNDROME
دوشنبه 10 خرداد 1389, 00:01 صبح
با سلام
1-اگر در زمان اجرای برنامه شی را ایجاد می کنید و بعد از پایان کارتان شی را Free نکنید و مدام این عملیات را انجام دهید میزان حافظه ای که برنامه شما در اختیار می گیرد افزایش می یابد که می تواند بر کارایی سیستم تاثیر گذار باشد چون ممکن است حافظه سیستم محدود باشد.
در بعضی از مواقع هم این آزاد نکردن حافظه در هنگان بستن برنامه ایجاد خظا می کند.
2-اگر شما از ابتدا هم بخواهید همه اشیاء را بسازید سرعت لود اولیه برنامه کاهش می باید و اشیایی را ساخته اید که شاید نیاز به استفاده آنها نداشته باشید.
موفق باشید
SAASTN
دوشنبه 10 خرداد 1389, 00:33 صبح
واسه سیستم عامل که مشکلی پیش نمیاد؟چرا، اگه برنامتون نشت حافظه داشته باشه می تونه ramو تا بیت آخر بخوره. بعدشم یه پیغام out of memory یا یه چیزی تو این مایه ها (اخیرا از این دسته گلا به آب ندادم یادم رفته). بعدشم اینکه حتی اگه فرض کنیم مصرف حافظه کمه و منابع سیستم هم لایتناهی بازم دلیل نمیشه، خوب ما باید یه سری اصول رو رعایت کنیم و به یه نظم و سبک و استیلی تو کار قائل باشیم.
1485159
دوشنبه 10 خرداد 1389, 08:12 صبح
در بعضی از مواقع هم این آزاد نکردن حافظه در هنگان بستن برنامه ایجاد خظا می کند.
به چه صورت؟
SYNDROME
چهارشنبه 12 خرداد 1389, 07:35 صبح
با سلام
به چه صورت؟
یعنی برنامه در زمان بسته شدن می خواهم با Destroy کردن اشیاء حافظه را پس بگیرد ولی به دلیل ارتباطی که بین اشیاء وجود دارد در بعضی موارد ایجاد خطا می کند که پیدا کردن آن کار راحتی نیست.
اصولاً اگر شما نیازی به یک شی ندارید آن را Free کنید تا مشکلاتی از این قبیل برایتان پیش نیاید.
موفق باشید
1485159
چهارشنبه 12 خرداد 1389, 08:16 صبح
یعنی برنامه در زمان بسته شدن می خواهم با Destroy کردن اشیاء حافظه را پس بگیرد ولی به دلیل ارتباطی که بین اشیاء وجود دارد در بعضی موارد ایجاد خطا می کند که پیدا کردن آن کار راحتی نیست.
بالاخره آزادش میکنه دیگه؟
SYNDROME
چهارشنبه 12 خرداد 1389, 10:59 صبح
بالاخره آزادش میکنه دیگه؟
در بعضی موارد بعد از یک Error بسیار بد آزاد می کنه و در بعضی موارد شما باید دست به دامن Task Manager بشوید.
در هر صورت آزاد می شود ولی در نگاه کاربر خیلی با هم فرق می کنه که با Error و Task Manager آزاد بشده یا بسیار راحت و بدون درد سر.
موفق باشید
مصطفی ساتکی
چهارشنبه 12 خرداد 1389, 11:06 صبح
این خطااکثراً در حالتی پیش میاد که زمانی که Destrcutor مربوط به یک کلاس Override نمیشه. در این صورت با فراخوانی متد Free خطایی رو دریافت می کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.