על מופלאות ה-abs?
בהשראת הזמן הפנוי שיש לי כתוצאה מהשפעת המודרנית והשפעותיה, החלטתי לתזמן כמה דברים. רשמתי את הקוד הבא:
בהשראת הזמן הפנוי שיש לי כתוצאה מהשפעת המודרנית והשפעותיה, החלטתי לתזמן כמה דברים. רשמתי את הקוד הבא:
long clk; unsigned cnt=1000000000L; int sum=0; randomize(); clk = clock(); for(c=0;c<cnt;c++) { sum-=5; //to make it less cachable sum=abs(sum); //*1 //sum=(sum>=0)?sum:-sum; //*2 } clk=clock()-clk;
הרצתי את הקוד, פעם אחת עם abs - *1, ופעם אחת עם תנאי רגיל - *2, גם עם וגם בלי אופטימיזציה, התנאי הרגיל תמיד היה מהיר יותר . נשמע לכם הגיוני??