MrAlex פורסם 2014 באוגוסט 6 Share פורסם 2014 באוגוסט 6 קראתי במקור מסוים שהפיכתן של פונקציות TEMPLATE לINLINE מקטינה את ניפוח הקוד לא הבנתי כיצד? תודה לעוזרים קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 באוגוסט 6 Share פורסם 2014 באוגוסט 6 פונקציות טמפלייטיות חייבות להיות inline, דהיינו צריך לשים את כל הקוד של הפונקציה בתוך קובץ ה-header (ובעצם אין קובץ cpp).אתה יכול אולי לתת את ההסבר המדויק שקראת? קישור לתוכן שתף באתרים אחרים More sharing options...
MrAlex פורסם 2014 באוגוסט 6 מחבר Share פורסם 2014 באוגוסט 6 http://prntscr.com/4a4p4xבקישור תמונה של ההסבר(לא ארוך)תודה על העזרה קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 באוגוסט 6 Share פורסם 2014 באוגוסט 6 מה ש-inline עושה הוא לומר לקומפיילר "אם אתה יכול, תחליף את הקריאה לפונקציה בקוד עצמו". בדוגמה הזו, הקריאה לפונקציה (myswap(i1,i2 תוחלף ממש בשלוש שורות הקוד: temp=i1;i1=i2;i2=temp;כיוון שחוסכים קריאה לפונקציה, הקוד הזה אמור להיות יותר יעיל. השימוש ב-inline יכול לגרום לקצת ניפוח של קוד (מדובר כאן בקוד הבינארי שנוצר אחרי הקומפילציה), כי בכל מקום שבו הפונקציה נקראת, אמורים להחליף את הקריאה בכל התוכן שלה. מצד שני, חוסכים את התקורה של הקריאה לפונקציה (שברמת שפת המכונה מתבטאת בעוד כמה שורות קוד). ולכן אם מדובר בפונקציה עם מעט מאוד שורות זה יכול לגרום לכך שהקוד הבינארי דווקא יצטמצם.אתה יכול לקרוא עוד בנוגע ל-inline כאן:http://www.parashift.com/c++-faq/inline-and-perf.html קישור לתוכן שתף באתרים אחרים More sharing options...
MrAlex פורסם 2014 באוגוסט 6 מחבר Share פורסם 2014 באוגוסט 6 אוקיי אז ניראה לי הבנתי בעצם הגדרת הפונקצייה כINLINE במקרה הנ"ל תחסוך את הקריאות לעותקים שיווצרו בעת ההידור(כשיבנו ההתאמות לתבניות עם טיפוסי משתנים) תודה קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 באוגוסט 6 Share פורסם 2014 באוגוסט 6 תיאורטית. מעשית זה תלוי בקומפיילר. קישור לתוכן שתף באתרים אחרים More sharing options...
borsood פורסם 2014 באוגוסט 9 Share פורסם 2014 באוגוסט 9 בסטנדרטים החדשים inline זו רק המלצה לקומפיילר. בפועל, הקומפיילר עושה את האופטימיזציה הכי טובה ללא קשר אם יש או אין הכרזה כזו. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.