ביצועי not

כלמנסע

New member
ביצועי not

אוקיי, השאלה קצת טיפשית, אבל בכל זאת... שתי דוגמאות פסאודו קוד: דוגמה 1:
if my_cond then //do nothing else my_func() end if​
דוגמה 2:
if not my_cond then my_func() end if​
האם יש הבדל בין שתי הדוגמאות, מבחינת ביצועים? למיטב הבנתי, בדוגמה 1 יש אקסטרה - קפיצה, ובדוגמה 2 יש אופרטור שלילה. השאלה היא מי מהם יותר מהיר, ובמה זה תלוי (בבילדר? במערכת ההפעלה?) השאלה נשאלת מתוך סקרנות נטו, ולא מתוך צורך עז לשפר את הביצועים. השואל מבין(?) שכאשר מדובר בעניינים כל כך זניחים - יש לעבוד באסמבלר.
 

אלדד28

New member
אין הבדל,

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

כלמנסע

New member
נחמד...

כלומר הקומפיילר מספיק חכם להמיר את הכתוב בדוגמה הראשונה לדוגמה השניה. תודה על התשובה!
 

DecayCell

New member
אולי...

אבל אם הוא לא יעשה את זה, אז כנראה שהוא לא שווה כלום.
 

אלדד28

New member
כן, ברור,

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

ChipsMan

New member
תשמע.. תראה.. ../images/Emo8.gif

אני בדיוק צריך להגיש קומפיילר בעוד שבוע (עבודת בית). והקומפיילר שלי לא יעשה את זה
 

אלדד28

New member
הקומפיילר שלי

היה בעיקר IF ו-COUT
מצד שני, זה היה קורס ב-LALR וכאלו, ולא בדיוק באופטימיזציות.
 

ChipsMan

New member
גם הקורס שלי לא ../images/Emo13.gif

הוא ברובו עסק ב-Parsing ובהנחיות מותנות דקדוק ליצירת קוד (עם Backpatching and stuff). בסוף בשתי ההרצאות האחרונות המרצה הראתה לנו אופטימיזציות. אבל אנחנו לא צריכים לממש אותן (צריכים לדעת אותן למבחן
)
 
למעלה