התלמוד של המפתחהתלמוד של המפתח

מסכת ביצועים

מסכת הפרופיילינג

3 הלכות

א

המאיץ לפני שמדד

המאיץ קוד לפני שמדד — שוטה. המאיץ קוד במקום הלא נכון — שוטה כפול. המאיץ קוד במקום הלא נכון לאחר שמדד ולא הבין מה המדידה אמרה — יצא ידי שלושתם, ויקרא לו "מהנדס סיניור."

אמר ריש לקיש: בא ואראך את אם כל הטעויות בביצועים. כינסתי צוות לישיבת אופטימיזציה. ישבנו שלושה ימים. הבנו שהבעיה בפונקציית המיון. אופטימיזנו אותה. מהרנו אותה פי שניים. יצאנו מרוצים. פרסמנו. ולא שינה כלום. שאלו: מדוע? אמר: כי פונקציית המיון נקראה פעם אחת בשעה. ואנחנו אופטימיזנו אותה במקום הלולאה שנקראה עשרת אלפים פעמים בדקה ושלא הסתכלנו עליה בכלל. שאלו: ולמה לא הסתכלתם? אמר: כי כולנו "ידענו" מאיפה הבעיה. ומי שיודע — אינו מודד.

ב

תמיד מודדים לפני

תמיד מודדים לפני שנוגעים. ה-Profiler הוא נביא האמת. ומי שאומר "אני יודע בדיוק מאיפה הבעיה" לפני שפתח Profiler — טועה. תמיד. ללא יוצא מהכלל. וגם אם צדק פעם אחת — זו הייתה מקרה, ולא יחזור על עצמו.

הלכה פסוקה: מדוד, מצא את הצוואר הבקבוק, תקן אותו, מדוד שוב. זה הסדר. אין קיצורי דרך. ומי שחושב שהוא חריג לכלל — אינו חריג, הוא פשוט טרם נשרף.

ג

מתי מספיק לאפטימז

מתי מספיק לאפטימז? לעולם לא מספיק. תמיד אפשר יותר מהיר. תמיד אפשר פחות זיכרון. תמיד אפשר פחות בקשות.

"Done is better than perfect" — ואין לו תרגום עברי הולם, אך כולם מבינים.

מחלוקת
רב אומר:

מספיק לאפטימז כשהמשתמש מרוצה.

אביי חולק ואומר:

מספיק לאפטימז כשהמדדים ירוקים.

רבא:

מספיק לאפטימז כשהמנהל הפסיק לשאול שאלות.

רב נחמן בר יצחק:

לעולם לא מספיק. תמיד אפשר יותר מהיר. תמיד אפשר פחות זיכרון. תמיד אפשר פחות בקשות.

רבא לרב נחמן:

ואם תמיד ניתן לשפר — מתי שולחים לפרודקשן?

שתק רב נחמן בר יצחק. ושתיקתו היא התשובה: Done is better than perfect.