שאלה

naatz

New member
שאלה ../images/Emo105.gif

אני מנסה להשוות את זמני הפעולה של הכללת קבצים בשיטת include לעומת server.execute, ללא הצלחה :] הexecute הוציא לי תוצאות בין 0.00 ל- 0.61, אבל זה לא משנה - כיוון שבinclude אני מקבל תמיד 0.00. לא יודע למה
אז חשבתי לעצמי - מממ.. naatz... אולי הסקריפט מודד הזמן שלך שגוי. אז מדדתי לולאה. וקיבלתי זמן פעולה. אז הסקריפט בסדר. איך אני מודד את זה?? (או מוצא נתונים מה יעיל יותר) naatz
 
נראה לי

שזה בגלל הדרך פעולה. server.execute מריץ את הדף בנפרד, אחרי שהדף עצמו כבר רץ. ואינקלוד בכל מקרה עולה עם הדף עוד קודם, אז כנראה בגלל זה אין אינדיקציה.
 

naatz

New member
זה מעניין, ../images/Emo62.gif

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

makaf1

New member
נעץ, אני חושב שאפשר ../images/Emo86.gif

נראה לי שאם תכליל את השעון בתוך האינקלוד הראשון ואז הוא ירוץ כשהוא נכנס וימדוד את שאר האינקלודים
 

naatz

New member
פה בדיוק הבעיה.

ההכללה מתבצעת לפני שרץ קוד בכלל - סתומרת שמרגע שהכללת קובץ, לא משנה באיזו רמה הוא נמצא בקובץ. רק אחרי כן מתפנה המחשב ברוב טובו להתקדם לביצוע של הקוד. ניסיתי כצעד נואש להשתמש בXMLHTTP כדי להשוות את הזמנים - אבל הרכיב הזה לא אמין לצורך בדיקה שכזו. הסקאלה של התוצאות רחבה מדי כדי להוציא ממנה נתונים מובהקים. עוד רעיונות אולי?
תודה בכ"ז, naatz
 

roee

New member
לדעתי

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

naatz

New member
יכול להיות,

אבל כיוון שאני לא יכול למדוד מהירות תגובה של include, עדיין חסר לי הנתון ההכרחי להשוואה. יכול להיות שהזמנים מתקזזים. יכול להיות שלא. כל זמן שלא מצאתי דרך לקבל את הנתון עצמו - אני לא יכול להסתמך על זה. לא הגיוני לי שלא ניתן למדוד את זה. naatz
 

rmarko

New member
הזמנים מתקזזים?

לא הבנתי את המשפט הזה... למה הכוונה? רעיון: תשתמש ב- Stress Tool כדי לדמות כניסה של מספר מסוים של מבקרים לאתר שלך - חמש פעמים בלי אינקלוד, חמש פעמים עם אינקלוד לקובץ שלא מכיל כלום, וחמש פעמים עם אינקלוד לקובץ שמכיל מספר שורות קוד. תרשום את הזמנים בטבלה, תחשב זמן ממוצע לכל סוללת מבדקים - ואולי זה יעזור לך בהשוואה. ועכשיו כשעברנו את הגשר הזה אולי יהיה לך נוח יותר לענות לי: איפה בכלל יש מקום להשוואה בין server.execute לאינקלוד? מדובר בשני דברים שונים שמשתמשים בהם בסיטואציות שונות לגמרי. מה ההשוואה המדוברת יכולה ללמד?
 

naatz

New member
אז הנה הנסיון להסביר ../images/Emo13.gif

אני נתקל לא מעט בשימוש בserver.execute כתחליף לinclude בהכללת קבצים - בעיקר לשימוש דינמי. עניין אותי לראות אם השיטה הזו מהירה יותר מאשר לכלול קובץ בודד אשר יכיל את כל התוכן וישתנה בהתאם למשתנה מסויים או שימוש בפונקציות. הכתובת אגב - http://webtool.rte.microsoft.com. לא נתקלתי מעולם בכלי הזה. נראה שימושי. תודה! naatz
 
יש

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

naatz

New member
הכוונה היא לinclude בודד שמכיל

פונקציה רלוונטית שבונה את הקובץ דינמית לעומת התנייה באמצעות server.execute. מן הסתם אין טעם לכלול מספר אינקלודים חופפים. אגב - לא הצלחתי למצוא תיעוד לכלי שמצביע שהוא יוכל לעבוד על xp pro. naatz
 
למעלה