אלגוריתמים חוזרים משמשים בדרך כלל במערכות משובצות לפתרון בעיות מורכבות.הבנת השימוש בזיכרון שלהם חיוני לביצועים אופטימיזציה ולהבטיח יציבות מערכת. מאמר זה מסביר כיצד לחשב צריכת זיכרון בפונקציות חוזרות בתוך סביבות משובצות.

הבנה של תפקוד זיכרון מחדש

השימוש בזיכרון באלגוריתמים חוזרים כולל בעיקר שני מרכיבים: זיכרון ערימה וזיכרון נתונים.הערימה מאחסנת מידע על כל שיחה פעילה, כולל משתנים מקומיים וכתובות החזרה.זיכרון נתונים מחזיק במשתנה סטטי וגלובאלי המשמש את התוכנית.

המונחים: memory usage

זיכרון הערימה הכולל המשמש פונקציה חוזרת תלוי בעומק מקסימלי של סיור ואת גודל של כל מסגרת ערימה של כל פונקציה call.הנוסה היא:

(ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

כדי לקבוע את גודל כל מסגרת ערימה, לשקול משתנים מקומיים, רישומים נשמרים, וכתובות החזרה.מערכות Embedded לעתים קרובות יש שטח ערימה מוגבל, כך estimating זה מדויק הוא קריטי.

הערכת השימוש ב-Data Memory Usage

צריכת זיכרון נתונים תלויה במשתנים סטטיים וגלובאליים המשמשים לאורך התהליך הרציני.המשתנים האלה מוקצים פעם ונמשכים למשך התוכנית.זיכרון הנתונים הכולל המשמש הוא סכום כל המשתנים הללו.

דוגמא מעשית

נניח שלפונקציה חוזרת יש עומק מקסימלי של 10 שיחות, וכל מסגרת ערימה של שיחה היא 64 עוויתות.זיכרון הערימה הכולל המשמש:

(ב) × 64 ע"י 640 ⁇

אם הפונקציה משתמשת 200 ע"י משתנים גלובליים, השימוש הכולל בזיכרון משלב ערימה וזיכרון נתונים, ומספק נוף מקיף של צריכת משאבים.