سفارش شبیه سازی با متلب را از طریق فرم سایت ارسال نمایید. شماره تماس 09378425676 ساعت تماس: 9 تا 22 هر روز *لطفا جهت استعلام هزینه تماس نگیرید. باید متخصصین مربوطه سفارشتان را بررسی نمایند*
  • 0سبد خرید فروشگاه
متلبی
  • خانه
  • فروشگاه متلبی
  • وبلاگ
  • دعوت به همکاری
  • فرم ثبت سفارش شبیه سازی
  • جستجو
  • منو منو
وبلاگ آموزش ها و اخبار متلبی
مکان شما: خانه1 / وبلاگ آموزش ها و اخبار متلبی2 / آموزش متلب3 / رفع خطای Out of Memory متلب
رفع خطای Out of Memory متلب

رفع خطای Out of Memory متلب

دسامبر 18, 2020/0 دیدگاه /در آموزش متلب, هلپ متلب, وبلاگ /توسط matlabi

رفع خطای Out of Memory متلب

متلب برنامه ای هست که در طی تحلیل و اجرای برنامه بر اساس مقدار دیتای مورد محاسبه رم سیستم را درگیر می کند.

در این پست قصد داریم راهکارهای متفاوتی را برای رفع خطای خارج شدن از حافظه, بررسی کنیم و به آن بپردازیم.

مهم نیست که چگونه با این خطا مواجه شده اید, ما بهینه کردن برنامه و سیستم را برای گذر از این خطای Out of Memory توضیح می دهیم.

رفع خطای Out of Memory متلب

چه زمانی خطای Out of Memory رخ می دهد؟

متلب بسیار هوشمند است و برای مواقعی که محاسبات بیشتر از مقدار 100درصدی حافظه یا همان Ram سیستم هست با نمایش خطای Out of Memory کاربر را مطلع می سازد. از این رو کاربر متوجه می شود مشکل از پر شدن حافظه بوده است.

این در صورتی هست که برنامه های دیگر وقتی از حداکثر ظرفیت رم استفاده میکنند, سیستم هنگ می کند یا برنامه بسته میشود.

شاید الان با خودتان بگویید پس چرا گاها سیستم من با اجرای برنامه متلب هنگ می کند!

پاسخ این است که متلب این قابلیت را دارد که از 100درصد رم برای محاسبات استفاده کند. در تنظیمات متلب می توان مقدار حداکثر استفاده متلب از رم را مشخص کرد. برای اینکار به مسیر زیر بروید:

 Home تب,  Environment بخش ,  Preferences کلیک . MATLAB > Workspace را انتخاب کنید

از سمت چپ به راست به ترتیب عمل کنید.

خب حالا طبق این لینک تنظیمات را اعمال کنید. (چون مبحث در مورد راه های رفع خطای حافظه هست این موضوع را بیشتر تشریح نکردیم)

 

استراتژی حل خطای Out of Memory در متلب

در زیر راه های مختلف را با هم بررسی می کنیم. ما راهکار حل مشکل را هم با تغییرات در پروژه متلب و هم در سخت افزار و ویندوز و… بررسی می کنیم. چرا که این خطا میتواند با عوامل بسیار زیادی مرتبط باشد و کارهای زیر همگی در رفع این خطا موثر هستند:

  • رم سیستم خود را افزایش دهید (دارای هزینه)

رم (RAM) حافظه موقت سیستم شماست, میتوانید از یک متخصص کامپیوتر یا لپ تاپ برای این امر کمک بگیرید.

 

  • افزایش رم به صورت مجازی (virtual memory) (بدون هزینه)

با یک جستجوی ساده در گوگل میتوانید راهکارهای افزایش حافظه مجازی را مطابق با ویندوز خود مشاهده و اعمال نمایید. این یک اقدام بسیار کار ساز برای رفع مشکل Out of Memory در متلب است.

 

  • از نسخه 64بیتی متلب استفاده کنید

ویندوز های 64بیتی فضای بیشتری از حافظه رم سیستم را برای استفاده در نظر می گیرند.

 

  • برنامه های اضافی را ببندید

هر برنامه ای که در ویندوز شما فعال هست از رم سیستم استفاده می کند. با بستن آن مقدار رمی که در اختیار متلب قرار می گیرد را افزایش دهید.

برای این کار بعضی از نرم افزار ها با نام بوستر رم در فضای اینترنت موجود است که میتوان استفاده کرد.

 

  • از ذخیره سازی اطلاعات مناسب استفاده کنید

از کلاس عددی مناسب استفاده کنید. یعنی برای داده ای که میشود از کلاس Single یا uint8 استفاده کرد, به هیچ عنوان از Double استفاده نکنید

 

کلاس (نوع داده)

بایت عملیات پشتیبانی شده

single

4

بیشتر ریاضیات

double

8

همه ریاضیات

logical

1

عملیات منطقی / شرطی

int8, uint8

1

حساب و برخی توابع ساده

int16, uint16

2

حساب و برخی توابع ساده

int32, uint32

4

حساب و برخی توابع ساده

int64, int64 8

حساب و برخی توابع ساده

  • فراخوانی دیتا با کلاس مناسب

مثال زیر را در نظر بگیرید:

fid = fopen('large_file_of_uint8s.bin', 'r'); 
a = fread(fid, 1e3, 'uint8');              % Requires 8k 
whos a
  Name         Size            Bytes  Class    Attributes
 
  a         1000x1              8000  double    
  
a = fread(fid, 1e3, 'uint8=>uint8');       % Requires 1k 
whos a
  Name         Size            Bytes  Class    Attributes
 
  a         1000x1              1000  uint8

همانطور که مشاهده میشود دیتا با کلاس دابل 8کیلوبایت و با کلاس uint8 یک کیلوبایت حجم در حافظه اشغال می کند.

  • در صورت امکان آرایه ها را کم حجم کنید

شاید برای شما هم جالب باشد که آرایه های صفر در ماتریس ها فضای بیشتری اشغال می کنند.

باز هم مثال میزنیم:

A = eye(1000);        % Full matrix with ones on the diagonal
As = sparse(A);       % Sparse matrix with only nonzero elements
whos
  Name         Size                Bytes  Class     Attributes

  A         1000x1000            8000000  double              
  As        1000x1000              24008  double    sparse

در ابعاد کوچک تر نتیجه این دو دستور را نمایش میدهیم.

A= eye(4)

نتیجه:

A =

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

و اما دستور زیر:

As = sparse(A)

As =

(1,1) 1
(2,2) 1
(3,3) 1
(4,4) 1

دستور sparse عناصر صفر را حذف می کند. یعنی فقط عناصر غیر از صفر را نگه میدارد.

گاهی یک برنامه چند 100 خطی را میتوان با چند دستور و به بهینه ترین و سبک ترین حالت پیاده سازی کرد. فقط باید دایره شناخت ما از دستورات متلب بازتر شود. هلپ متلب بزرگترین و قویترین منبع آموزش متلب است.

  • وبلاگ و اخبار متلبی
  • آموزش رفع مشکل لایسنس متلب
  • رفع خطای must be monotonically increasing در سیمولینک متلب
  • آموزش رفع خطای License Error –4,0 موقع باز کردن Polyspace متلب

 

این مطلب باز هم آپدیت میشود و راهکارهای بیشتری را ارائه خواهیم کرد.

نظرات خود را با ما در بخش دیدگاه های همین پست در میان بگذارید.

 

free

 

برچسب ها: خطا در متلب, خطای حافظه متلب
اشتراک این مطلب
  • اشتراک در Facebook
  • اشتراک در Twitter
  • اشتراک گذاری در واتس آپ
  • اشتراک در Pinterest
  • اشتراک در LinkedIn
  • اشتراک در Tumblr
  • اشتراک در Vk
  • اشتراک در Reddit
  • اشتراک با ایمیل
https://www.matlabi.ir/wp-content/uploads/2020/12/Out-of-memory-matlabi.jpg 350 450 matlabi https://www.matlabi.ir/wp-content/uploads/2020/05/logo-matlabi.png matlabi2020-12-18 13:07:352021-01-22 00:47:21رفع خطای Out of Memory متلب
0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برای امنیت، استفاده از سرویس reCAPTCHA گوگل مورد نیاز است که موضوع گوگل است Privacy Policy and Terms of Use.

من با این شرایط موافق هستم .

دسته ها

  • اخبار و وبلاگ
  • آموزش متلب
  • آموزش دستورات متلب

آخرین اخبار و آموزش های متلبی

  • در مورد سیمولینک متلب بیشتر بدانیم
  • چرا با خطای Undefined function or variable مواجه میشویم؟
  • رفع خطای Out of Memory متلب
  • دانلود نرم افزار متلب MATHWORKS MATLAB R2020b
  • رفع خطای mux blocks used to create bus signals در سیمولینک متلب

محل تبلیغ شما

  • جهت درج تبلیغ شما اینجا را کلیک کنید
  • شبیه سازی با متلب
  • انجام پروژه متلب
  • پروژه متلب
  • متلب کدر
  • انجام پروژه آباکوس
  • انجام پروژه EMTP
  • دانلود نرم افزار متلب R2020a
  • فرم ثبت سفارش
    فروشگاه متلبی
    وبلاگ متلبی
    دعوت به همکاری
    تبلیغات در متلبی

    جستجو در سایت

    جستجو در فروشگاه متلبی

    • تبادل لینک با متلبی
    • درگاه پرداخت دلخواه آنلاین
    • تعویض شبیه سازی رایگان
    • تماس با ما
    • درباره ما

    متلبی بزرگترین سایت فروش آموزش در قالب شبیه سازی مقاله با متلب به همراه فایل کمک آموزشی است.

    سایت متلبی با تضمین هزینه, پروژه های آماده متلب را در قالب آموزش متلب و مباحث کمک آموزشی در سرتاسر ایران و جهان ارائه می کند.

    شبیه سازی مقاله برق قدرت , شبیه سازی مقاله برق کنترل و شبیه سازی مقاله پردازش تصویر و پردازش سیگنال و… را به همراه فایل کمک آموزشی می توانید به راحتی در فروشگاه متلبی بیابید و خریداری کنید.

    مقالات شبیه سازی شده از ژورنال های معتبر Elsevier, IEEE , Springer و… مشخص شده اند.

    انجام شبیه سازی با متلب نیز با بهترین کیفیت و ضمانت و ارزان ترین قیمت توسط متخصصین سایت متلبی انجام می شود.

    مشتری مداری متلبی یکی از دلایل استقبال جهت انجام پروژه متلب توسط متخصصین مجرب متلبی است.

    یکی از امکانات سایت Matlabi تعویض پروژه متلب بصورت رایگان است.

    تمام حقوق مادی و معنوی محفوظ می باشد | متلبی
    • Telegram
    • Facebook
    • Instagram
    • اطلاع از تخفیف های متلبی
    دانلود نرم افزار متلب MATHWORKS MATLAB R2020b دانلود نرم افزار متلب MATHWORKS MATLAB R2020b Undefined function or variable چرا با خطای Undefined function or variable مواجه میشویم؟...
    رفتن به بالا
      • فرم ثبت سفارش
      • فروشگاه متلبی
      • استخدام
      • تخفیف ها
      • فرم ثبت سفارش
      • فروشگاه متلبی
      • استخدام
      • تخفیف ها