Table of Contents
الگوریتم های بازگشتی معمولا در سیستم های جاسازی شده برای حل مشکلات پیچیده استفاده می شوند. درک استفاده از حافظه آنها برای بهینه سازی عملکرد و اطمینان از ثبات سیستم ضروری است.این مقاله توضیح می دهد که چگونه مصرف حافظه را در عملکردهای بازگشتی در محیط های جاسازی شده محاسبه کنیم.
درک اجزای حافظه عملکرد بازگشتی
استفاده از حافظه در الگوریتم های بازگشتی عمدتا شامل دو جزء است: حافظه پشته و حافظه داده ها. پشته اطلاعات مربوط به هر تماس تابع فعال، از جمله متغیرهای محلی و آدرس های بازگشت را ذخیره می کند.
محاسبه استفاده از حافظه Stack
کل حافظه پشته که توسط یک تابع بازگشتی استفاده می شود بستگی به حداکثر عمق بازگشتی و اندازه فریم پشته هر تابع دارد: فرمول این است:
استفاده از هش Maximum = حداکثر اندازه بازگشتی هر فریم
برای تعیین اندازه هر فریم پشته، متغیرهای محلی را در نظر بگیرید، ثبت نام های ذخیره شده و آدرس های بازگشتی اغلب فضای پشته محدود دارند، بنابراین برآورد دقیق این امر بسیار مهم است.
برآورد استفاده از حافظه داده
مصرف حافظه داده بستگی به متغیرهای استاتیک و جهانی که در طول فرایند بازگشتی استفاده می شود دارد.این متغیرها یک بار اختصاص داده می شوند و برای مدت زمان برنامه ادامه می یابند.کل حافظه داده ای که استفاده می شود، مجموع مجموع این متغیرها است.
مثال عملی Calculation
فرض کنید یک تابع بازگشتی دارای حداکثر عمق 10 تماس است و هر فریم پشته تماس 64 بایت است.
64 بایت = 640 بایت [FLT 1 ]
اگر این تابع از 200 بایت متغیرهای جهانی استفاده کند، استفاده از کل حافظه، پشته و حافظه داده را ترکیب می کند و یک دیدگاه جامع از مصرف منابع را ارائه می دهد.