02-08-2005, 21:09
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
שיטות אופטימיזציה - פרק 1
הערה: מאמר זה והבאים אחריו יסקרו שיטות שונות של אופטימיזציה, חלקן ברמת המהדר, וחלקן בשליטת המפתח.
שיטות אופטימיזציה - שימוש באוגרים של המעבד
אופטימיזציה ברמה בסיסית
בעבר, בשפת C - הומלץ להשתמש במילה השמורה register על מנת "לבקש" להשתמש באוגרים של
המעבד לאיחסון משתנים. כמובן שהדבר היה רק בגדר בקשה, והמעבד יכול היה להחליט אם יש לו אוגר
פנוי לשימושים אלה.
הסיבה לבקשה זו, היא שהמעבד קורא את תכנם של האוגרים הרבה יותר מהר מהמחסנית, בה הוא
שומר את המשתנים.
היום אין צורך כמעט להשתמש ב register מכיוון שמהדרים מודרניים מטפלים בפעולה זו בצורה
אוטומטית - או למעשה אפילו מתעלמות מבקשה זו.
מהדר ++VC סורק כל פונקציה על מנת לקבוע איך היא משתמשת במשתנים שלה ומחלק ציונים
לכל משתנה על פי התועלת שתפיק הגדרת register למשתנה זה. היום ניתן לשמור כמעט כל סוג
נתונים באוגרים (משתנים גלובליים, מקומיים, קבועים, ארגומנטים של פונקציות ומצביעים שהועברו
באמצעות התייחסות).
המהדר ינסה להשתמש באוגרים עבור המשתנים שקיבלו את ציוני היעילות הגבוהים ביותר שהתקבלו
מניתוח זה. לעיתים - הגדרות אלו, יעניקו לתכנית מהירות ניכרת לעומת שימוש זהה ללא אוגרים.
פרקים קודמים:
אופטימיציה של קוד - מבוא
נערך לאחרונה ע"י fat fish בתאריך 02-08-2005 בשעה 21:11.
|