ניתן לשנות בקובץ כמה מאפיינים של הבדיקה ע"י שינוי הקבועים (constants).
שינוי אחד משלושת הקבועים התחתונים מחייב מחיקה של התייקיה (וגם של הקבצים בתוכה) שנוצרה בעקבות הסקריפט, על מנת שיתקבלו תוצאות נכונות.
בתגובה להודעה מספר 1 שנכתבה על ידי dorM שמתחילה ב "שני benchmark - מהירות טעינת מחלקות בגודל שונה, ומהירות include/require"
העפתי מבט חטוף על הקובץ require_vs_include.php, ויש לי לפחות הערה אחת.
בשורה 66, 70 (לפחות בקובץ שאני קיבלתי בהורדה) אתה מבצע את חישוב הזמן (בשימשו בפונקציה microtime) של כל הכללה ומוסיף לערך הקודם.
למה שלא תבצע את החישוב פעם אחת בלבד. לפני ריצת הלולאה את זמן ההתחלה ולאחר ריצת הלולאה את זמן הסיום?
בתגובה להודעה מספר 2 שנכתבה על ידי ישראל K שמתחילה ב "העפתי מבט חטוף על הקובץ..."
למה כן לבצע זאת בדרך הזאת?
כלומר, מה ההבדל בין 2 הדרכים?
עשיתי את הבדיקה בצורה הזו כדי לקבל ממוצע של בדיקות רבות, שאז זה נחשב אמין ומדוייק יותר.
שים לב שה- TIMESTORUN צריך להיות גם שווה למספר הקבצים הזמינים שיש בתיקייה, כי ה- include מקבל פרמטר שהוא פונקציה של, בין היתר, המשתנה i.
בכל אחד מהבדיקות, עשיתי את בדיקת הזמן בצורה הזו:
אינקלוד של 100 קבצים מהתיקייה הרלונטית, כדי שתהיה לי בכלל האפשרות לעשות ממוצע של 100 זמנים שבדקתי (כי הרי אסור באותו הקובץ שיהיה מחלקות עם שם דומה --> collisions).
בדיקת הממוצע של ה-100 אינקלודים האלו. כל אינקלוד לקח X זמן, ואז הממוצע יהיה x/100.
לכן בדקתי את הזמן שלוקח אינקלוד יחיד והוספתי את זה למשתנה שאוסף את הזמן (timer).
חשוב לשים לב שכל הקבצים בעלי תוכן שווה, מלבד השם של המחלקה שעולה באופן סידורי (בתלות במשתנה i) !
* אם הקבוע אתה יכול להשתמש גם ליצירת הקבצים המוכללים.
* למה להשתמש בבדיקת משך הזמן מחוץ לפעולות ולא בצמוד לפעולה עצמה * משך הזמן של כל פעולה? כי זה מיותר, לחלוטין!
כיון שאתה משתמש בקוד זהה בשני הבדיקות, לא משנה לנו מה משך הזמן המדוייק של כל ביצוע פעולה בפני עצמה, אלא מה הממוצע של הזמן הכולל.
ניתן להסתייג מזה בטענה שביצוע פעולות הלולאה עצמה (לא ביצוע הקוד שבתוך הלולאה) [כגון קידום המשתנה i] עלול להתעכב מסיבה כלשהי רק בחלק מהמקרים ולכן ה"משוואה" לא תהיה זהה, אך עדיין הגיוני יותר לבדוק את משך הזמן לפני הרצת X פעולות זהות ולאחריהם, וכנ"ל לפני ואחר הרצת X פעולות זהות באמצעות קוד שונה וכך להשוות.
* מומלץ לרענן את הדף (משמע, להריץ את הקוד) מספר פעמים ולבצע ממוצע על סך כל התוצאות.