ورود

View Full Version : چگونه مقدار حافظه اشغال شده توسط برنامه ام رو محاسبه کنم ؟



oldozeli
چهارشنبه 13 آبان 1394, 20:08 عصر
با سلام دوستان عزیز اگه کسی می تونه راجع به اینکه چطور می تونم مقدار حافظه اشغال شده توسط برنامه متلب رو کدنویسی کنم لطفا کمک کنه ممنون میشم

rahnema1
چهارشنبه 13 آبان 1394, 21:31 عصر
سلام
می تونید از تابع memory استفاده کنید

coronaa
چهارشنبه 13 آبان 1394, 21:55 عصر
بعضی موقع به دلیل حجم زیادی که وارد worspace و memory میشه، در حین اجرای برنامه خطای out of memory میزنه. اینو چطوری میشه رفع کرد؟

rahnema1
پنج شنبه 14 آبان 1394, 05:59 صبح
بعضی موقع به دلیل حجم زیادی که وارد worspace و memory میشه، در حین اجرای برنامه خطای out of memory میزنه. اینو چطوری میشه رفع کرد؟

معمولا در حال حاضر حافظه Ram کامپیوترها در حدی هست که برای کارهای محاسباتی معمولی مناسب هست و کمبودی نیست
اما مواقعی که مصرف حافظه خیلی بالا رفته بسته به شرایط راه حل های مختلفی داره که از ایجاد مثلا ماتریسهای خیلی بزرگ جلوگیری بشه
گاهی وقتها هم ممکنه اشتباه در نوشتن برنامه باشه

oldozeli
پنج شنبه 14 آبان 1394, 12:00 عصر
سلام ممنون از پاسخ شما منظورم این هست که مقدار عددی حافظه اشغال شده با اجرای الگوریتمی که نوشتم رو می خوام در بیارم و در واقع مقایسه ای در میزان این جای اشغال شده می خوام انجام بدم دستور memory حافظه اشغال شده توسط متلب رو میاره درسته بعد چطوری این دستور رو توی برنامه اجرا کنم؟

rahnema1
پنج شنبه 14 آبان 1394, 15:55 عصر
مثلا my code همون الگوریتم شما باشه

[user1 sys1] = memory;

%%% my code

[user2 sys2] = memory;

disp(user2.MemUsedMATLAB - user1.MemUsedMATLAB)



ولی به نظرم بهتره چندین بار الگوریتم را اجرا کنید و عدد نهایی را بعد از اجرای چند باره نشون بدید:

for i = 1:100

[user1 sys1] = memory;

%%% my code

[user2 sys2] = memory;

end
disp(user2.MemUsedMATLAB - user1.MemUsedMATLAB)

coronaa
جمعه 15 آبان 1394, 09:23 صبح
حافظه رو چطوری میشه پاک کرد؟
برای پاک کردن workspace از دستور clear استفاده میشه. برای پاک کردن memory هم باید از همین دستور استفاده میشه؟

rahnema1
جمعه 15 آبان 1394, 09:55 صبح
بله همین طوره