با افزایش حجم دادهها و پیچیده شدن الگوریتمها،مشکلاتی از قبیل اجرا نشدن برنامه متلب بدلیل کمبود حافظه افزایش پیدا کرده است. خطایی که تحت عنوان out of memory در متلب نمایش داده میشود و اجرای برنامه را متوقف میکند. در ادامه برای رفع این مشکل راه حلی ارائه خواهیم کرد که بتوانید بدون تغییر سخت افزاری برنامه را بدون خطا اجرا کنید.
یکی از مشکلات رایجی که که افراد گزارش میکنند، پیرامون مسالهای است که در اجرای برنامههای خود در «متلب» (MATLAB) دارند. وقتی حجم دادههای مساله و در واقع، حجم مساله از یک اندازه بزرگتر میشود، دیگر برنامه اجرا نمیشود و پیام خطای «کمبود حافظه» (Out of Memory) به کاربر نمایش داده میشود. یعنی حافظه تمام شده است و به اندازه کافی جا ندارد. در اینجا، منظور از «حافظه» (Memory)، «رم» (RAM) است. یعنی، حافظهای که برنامهها در آن اجرا میشوند. بنابراین، اگر رم به اندازه کافی وجود نداشته باشد، طبیعتا گنجایش لازم وجود ندارد و برنامهها نمیتوانند اجرا شوند.
اما چه راهکاری را میتوان برای غلبه بر این مشکل پیشنهاد کرد. در گام اول به شما توصیه میشود که بررسی کنید خطای ایجاد شده ناشی از سبک برنامه نویسی نباشد و واقعا به میزان خاصی از رم احتیاج باشد. بعنوان مثال شما برای فراخوانی دادهها حداقل 10 گیگ رم نیاز دارید در حالی که سیستم شما تنها 8 گیگ رم دارد. به دو روش میتوان این مساله را حل کرد.
یکی اینکه از کامپیوتر دیگری استفاده شود که البته مشکل افرین و هزینه بر است بنابراین با این فرض که امکان تغییر و ارتقا سختافزار وجود ندارد روش دیگری را پیشنهاد میدهیم که بر روی هر کامپیوتری و بدون نیاز به هزینه و تغییر سخت افزار قابل اجرا باشد:
روش دیگر این است که «حافظه مجازی» (Virtual Memory) به سیستم اضافه شود. یعنی، بخشی از «درایو دیسک سخت» (Hard Disk Drive) به عنوان رم تعریف شود. این امکان، در بخش «System Properties» در کنترل پنل تعبیه شده است. در نسخههای متفاوت ویندوز، امکان دارد جای آن متفاوت باشد. معمولا میتوان آن را با کلیک راست روی «My Computer» و از System Properties، بخش Advance، در قسمت Performance پیدا کرد. با جستجوی عبارتهایی مانند «Add Virtual Memory» در گوگل نیز میتوان روش آن را پیدا کرد.
با این قابلیت، به عنوان مثال اگر پارتیشن هارد ۳۰ گیگ فضای خالی دارد، ۳۰ گیگ به رم میتوان اضافه کرد تا در واقع از بخشی از این هارد دیسک نیز به عنوان رم استفاده کند. البته اگر هارد کامپیوتر فرد از نسخههای قدیمی باشد، سرعت آن پایین است و این موجب افت کیفیت اجرای برنامه میشود. اما اگر هارد از مدلهای جدید و SSD باشد، به خوبی میتواند اثرگذار باشد و سرعت همچون وقتی که از هاردهای کلاسیک استفاده میشود، خیلی کاهش پیدا نمیکند. البته، به هر حال استفاده از هارد دیسک به عنوان حافظه مجازی نمیتواند به خوبی رم باشد. این مورد را حتما باید در نظر داشت، ولی به هر حال مشکل را حل میکند. البته در شرایط بیان شده، کمی کارایی کاهش پیدا میکند ولی به هر حال میتوان با استفاده از کامپیوتر موجود، کار را انجام داد و برنامه را اجرا کرد. یعنی در واقع، گاهی ناگزیر باید این کار را انجام داد. یعنی، بخشی از هارد، یا یک یا چند پارتیشن را، به عنوان یک رم ثانویه و در واقع، یک رم مجازی (Virtual Memory) تخصیص داده و سایر کارها را خود سیستم عامل جلو میبرد.
البته این را نیز باید مد نظر داشت که بعد از انجام این تنظیمات، باید متلب را بست و دوباره باز کرد و گاهی حتی نیاز میشود کامپیوتر را ریست کرد. این موضوع، بستگی به پیکربندی و تنظیمات سیستم کاربر دارد. برای حصول اطمینان از اینکه این تغییرات اعمال شده است، میتوانید در Task Manager و با استفاده از کلیدهای ترکیبی Ctrl+Shift+Escape، آمارهای مربوط به سیستم را مشاهده کرد. در این بخش، میتوان میزان حافظه در دسترس، میزان حافظه مجازی و حافظه فیزیکی را مشاهده کرد.
برای کسب اطلاعات بیشتر و یا آموزشهای مرتبط میتوانید از بخش یادگیری متلب و یا محصولات آموزشی سایت علمی آموزشی یارکد استفاده کنید.