נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: אופטור הצבה, יעילות

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
Leak
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 01 September 2006
משתמש: מנותק/ת
הודעות: 36
נשלח בתאריך: 10 October 2006 בשעה 17:27 | IP רשוּם
ציטוט Leak

מה הדרך היעילה ביותר להשתמש באופרטור ההצבה, במקרה של טיפול במצביע?
(תתעלמו מזה שהמשתנה _p בpublic, עשיתי את זה ככה בשביל להקל על ההבנה).
בכל מקרה, הקטעי קוד הבאים:
קוד:
1.
cls& cls::operator=(const cls& c)
{
    if (this == &c) return *this;
    delete p_;
    cls* pc = new cls (*c._p);
    p_ = pc;
    return *this;
}


קוד:
2.
cls& cls::operator=(const cls& c)
{
    cls* pc = new cls (*c._p);
    delete p_;
    p_ = pc;
    return *this;
}

הייתה לי התלבטות בקשר למה שיותר יעיל.
אני בדר"כ הייתי משתמש בדרך הראשונה, בשביל לעשות את הקוד יותר יעיל
במקרה של "הצבה עצמית", אבל מתכנת ותיק יותר הראה לי דרך שתיהיה יותר יעילה
במקרה שאין "הצבה עצמית" (הדרך השניה).
והוא ניסה להוכיח את זה בכך שרוב הפעמים אין הצבה עצמית, משום שאף אחד
לא מציב בכוונה את אותו משתנה, ולכן הדרך שאני כתבתי תיהיה פחות יעילה
מתי שאין הצבה עצמית, שזה רוב הפעמים.. (כנראה 99 אחוז מהזמן).
אז רציתי לשאול מה דעתכם? ובמה אתם משתמשים במקרה של אופרטור הצבה ?


__________________
True knowledge exists in knowing that you know nothing.

Nature has given us two ears, two eyes, and but one tongue-to the end that we should hear and see more than we speak.
חזרה לתחילת העמוד הצג את כרטיס החבר של Leak חפש הודעות אחרות של Leak
 
Fate
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת
הודעות: 571
נשלח בתאריך: 10 October 2006 בשעה 19:28 | IP רשוּם
ציטוט Fate

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

הצטרף / הצטרפה: 01 September 2006
משתמש: מנותק/ת
הודעות: 36
נשלח בתאריך: 10 October 2006 בשעה 20:58 | IP רשוּם
ציטוט Leak

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

יש הבדל של יעילות, קטן, אבל יש.
במקרה מס' 2 אין בדיקה של "הצבה עצמית", לכן אם תיהיה הצבה עצמית אז
ההצבה תיהיה איטית יותר, ואם לא תיהיה הצבה עצמית אז זה יהיה מהיר יותר
מאשר הראשון (2 יותר מהר מ1).
במקרה של הצבה עצמית (1 יהיה יותר מהיר מ2).
בגלל זה אני רוצה לדעת במה כדאי להשתמש.. ?


__________________
True knowledge exists in knowing that you know nothing.

Nature has given us two ears, two eyes, and but one tongue-to the end that we should hear and see more than we speak.
חזרה לתחילת העמוד הצג את כרטיס החבר של Leak חפש הודעות אחרות של Leak
 
Fate
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת
הודעות: 571
נשלח בתאריך: 10 October 2006 בשעה 23:45 | IP רשוּם
ציטוט Fate

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

הצטרף / הצטרפה: 01 September 2006
משתמש: מנותק/ת
הודעות: 36
נשלח בתאריך: 11 October 2006 בשעה 12:27 | IP רשוּם
ציטוט Leak

Fate כתב:
אהה הבנתי, אין לי מושג, השאלה זה האם זה יעבוד גם כשאתה עושה הצבה על עצמך בשני המקרים?
אם כן קח את זה שלא בודק...
אבל כנראה שלא, אז לא עדיף ללכת על בטוח?

שניהם יעבדו בשני המקרים של הצבה שהם:
1. הצבה עצמית
2. הצבה רגילה
ואף פעם אתה לא תעשה הצבה עצמית בכוונה
x=x ,המצב הזה יווצר ללא כוונה, לדוגמא במקרים שיש הרבה מצביעים/ייחוסים בתוכנית.



__________________
True knowledge exists in knowing that you know nothing.

Nature has given us two ears, two eyes, and but one tongue-to the end that we should hear and see more than we speak.
חזרה לתחילת העמוד הצג את כרטיס החבר של Leak חפש הודעות אחרות של Leak
 
Fate
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת
הודעות: 571
נשלח בתאריך: 11 October 2006 בשעה 13:17 | IP רשוּם
ציטוט Fate

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

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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