ההבדל בין כריכה סטטית ודינמית
תוֹכֶן
כריכת קשר של 'הגדרת פונקציה' ל'שיחת פונקציה 'או אסוציאציה של' ערך 'ל'משתנה', נקראת 'מחייב'. במהלך ההרכבה, לכל 'הגדרת פונקציה' ניתנת כתובת זיכרון; ברגע ששיחות פונקציות נעשות, השליטה בביצוע התוכנית עוברת לכתובת הזיכרון ההיא ומקבלת את קוד הפונקציה המאוחסן באותו מיקום, זהו הכריכה של 'שיחת פונקציה' ל'הגדרת פונקציה '. ניתן לסווג את הכריכה כ'כריכה סטטית 'ו'כריכה דינמית'.
אם זה כבר ידוע לפני זמן הריצה, איזו פונקציה תוטל או איזה ערך מוקצה למשתנה, אז זה 'כריכה סטטית'. אם זה נודע בזמן ההפעלה, זה נקרא 'כריכה דינמית'.
- טבלת השוואה
- הגדרה
- הבדלים עיקריים
- סיכום
טבלת השוואה:
בסיס להשוואה | כריכה סטטית | כריכה דינמית |
---|---|---|
אירוע אירוע | אירועים המתרחשים בזמן קומפילציה הם "כריכה סטטית". | אירועים המתרחשים בזמן ריצה הם "כריכה דינמית". |
מידע | כל המידע הדרוש כדי להתקשר לפונקציה ידוע בזמן ההרכבה. | כל המידע שצריך להתקשר לפונקציה מתוודע בזמן ריצה. |
יתרון | יעילות. | גמישות. |
זמן | ביצוע מהיר. | ביצוע איטי. |
שם חלופי | כריכה מוקדמת. | כריכה מאוחרת. |
דוגמא | שיחת פונקציה עמוסה יתר, מפעילי עומס יתר. | פונקציה וירטואלית ב- C ++, שיטות עוקפות בג'אווה. |
הגדרות של עקידה סטטית
כאשר המהדר מאשר את כל המידע הדרוש לקריאה לפונקציה או את כל ערכי המשתנים בזמן הקומפילציה, זה נקרא "כריכה סטטית“. מכיוון שכל המידע הנדרש ידוע לפני זמן ריצה, הוא מגביר את יעילות התוכנית, והוא גם משפר את מהירות ביצוע התוכנית.
כריכה סטטית הופכת את התוכנית ליעילה מאוד, אך היא פוסלת את גמישות התוכנית, מכיוון ש'ערכי המשתנה 'ו'קריאת פונקציות' מוגדרים מראש בתוכנית. כריכה סטטית מיושמת בתוכנית בזמן הקידוד.
עומס יתר על פונקציה או של מפעיל הם הדוגמה לפולימורפיזם בזמן קומפילציה, כלומר כריכה סטטית.
יישום של כריכה סטטית ב- C ++ עם דוגמא לעומס יתר
# כלול כאן הערך של המצביע משתנה ככל שהתוכנית נמצאת בביצוע וערך המצביע מחליט לאיזו פונקציית כיתה תוטל. אז הנה, המידע מסופק בזמן ריצה, לוקח זמן לחייב את הנתונים שמאטים את הביצוע. עם זאת, אנו מסיקים כי כאשר יש לנו ידע קודם בערכי שיחות משתנה ותפקוד, אנו מיישמים את הכריכה הסטטית. לעומת זאת, בכריכה דינאמית, אנו מספקים את כל המידע בזמן הביצוע.
סיכום: