— 0.2683281898498535 seconds —
אבל רק אומר שיש לי נייד שהוא סוג של מפלצת זכרון.
בשביל הפרספקטיבה:
מעצב אינטל i9
32gb ddr4
2t ssd
— 0.2683281898498535 seconds —
אבל רק אומר שיש לי נייד שהוא סוג של מפלצת זכרון.
בשביל הפרספקטיבה:
מעצב אינטל i9
32gb ddr4
2t ssd
מדהים ההפרשים שיש בין מחשב למחשב. את החישוב שלי עשיתי על נייד… (22.5 שניות) ועדיין פער משמעותי…
אני אוכל סרטים איך לוקח לך זמן חישוב של 0.2 שניות
עכשיו הצלחתי להוריד את זמן הריצה שלי ל 3.8 בממוצע
אצלי המעבד i5ו
4GB ram
וכונן 6 gb פנוי
ועל פי מה שים הזכיר הקפיצה הטכנולוגית די משמעותית
4 שניות?
יצא לי 0.3990020751953125 seconds
לא הבנתי איך אתם יודעים כמה זמן רץ הקוד? תלמדו אותי גם!
ראי כאן
יצא לי 0.68
(התרגיל הזה ממש הוציא לי את המיץ מבחינת חשיבה על מה יותר יעיל. הרג אותי)
סוד: הדרך הכי טובה לבדוק בצורה הוגנת (ועדיין רחוקה מלהיות מושלמת) מה בערך הוא זמן הריצה של תא, זה לכתוב %%timeit
בראש התא.
לי יצא:
114 ms ± 8.09 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
צריך להוסיף משהו נוסף, כדי לקבל את הפלט שלו?
לחכות קצת. זה יקח לו טיפה יותר זמן כי הוא מנסה לעשות הרבה חזרות כדי לנרמל את התוצאה
ניסיתי את זה והרצתי כמה פעמים… ובכל הרצה קיבלתי מספר אחר על בדיוק אותו קוד
שימי לב ל־standard deviation שהוא נותן.
גם ב־time את תקבלי תוצאה שונה לכל קוד, פשוט פה הוא אומר מה סטיית־התקן
אוף, הוא טוען שהקוד שלי לא כזה יעיל
501ms ± 35.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
זה לא אומר שהוא לא יעיל, זה אומר שבהינתן החומרה, בהינתן מה שרץ לי ולך על המחשב כרגע, ובהינתן תצורת הסביבה והמערכות שעליהן אני ואת עובדים, לי לקח 114 מילישניות להריץ קוד (עם סטיית תקן של 8 מילישניות בערך) ולך 501 מילישניות (עם סטיית תקן של 35.5 מילישניות).
כמו שאמרתי, בשבועות האחרונים לקורס נלמד איך להעריך יעילות של קוד באמת, וזה שונה לחלוטין מאשר מה שעשינו פה.
לי ייצא — 0.21188020706176758 seconds —
המחשב שלי בן 4 וחצי עוד שניה …
— 1.893251657485962 seconds —
מחשב ישן
תוצאות מהבדיקה הנוכחית (ללא שינוי של הקוד):
— 0.27300000190734863 seconds —
278 ms ± 10.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
148 ms ± 2.37 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
285 ms ± 5.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
מה מבינים מזה ? אינ לא בטוח שאני קורא את זה נכון
שהמדידה מראה שלוקח לקוד שלך לרוץ בערך 280 עד 290 מילישניות