דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק

שאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 4 כותבים 268 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

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

    אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

    yossizY dovidD 2 תגובות תגובה אחרונה
    6
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב לארכיטקט ב נערך לאחרונה על ידי yossiz
      #2

      @ארכיטקט מקובלנו מפי רבותינו:
      על שלושה דברים הקוד עומד: על התקינות, על הקריאות, ועל הביצועים. ובסדר הזה דייקא.

      מצאתי במגילה עתיקה הכתובה בלשון לעז:

      Make It Work Make It Right Make It Fast

      עוד מקובלנו מפי רבותינו:
      מיטוב שלא במקום צוואר בקבוק, בזבוז אנרגיה

      ע"ע https://en.wikipedia.org/wiki/Program_optimization#When_to_optimize

      זקן מדע המחשבים דונלד קנות' אמר:

      We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      dovidD תגובה 1 תגובה אחרונה
      14
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        השיב לארכיטקט ב נערך לאחרונה על ידי dovid
        #3

        @ארכיטקט אני חושב שמתחילים צריכים להיות פאנטים (וכל תחום שלא טובים בו עוד נחשבים למתחילים בו),
        אבל בתחומים שיש כבר הרגלים טובים צריך לוודא שרוב האנרגיה ממוקד בתכלית שבתכלית ורק מיעוט בביקורת ובמיטוב. ובקטגוריית תכלית אין שום דבר שקשור לתכנות, רק מוצר שעובד.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        yossizY תגובה 1 תגובה אחרונה
        8
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          השיב לyossiz ב נערך לאחרונה על ידי dovid
          #4

          @yossiz אמר ב[שאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק]

          זקן מדע המחשבים דונלד קנות' אמר:
          We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%

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

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          7
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב לdovid ב נערך לאחרונה על ידי yossiz
            #5

            @dovid אמר בשאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק:

            @ארכיטקט אני חושב שמתחילים צריכים להיות פאנטים

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

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

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה
            15
            • א מנותק
              א מנותק
              ארכיטקט
              כתב ב נערך לאחרונה על ידי ארכיטקט
              #6

              מקבל את כל דברי חכמים מבלי כחל ושרק.
              אבל מוסיף עוד משהו שאני חווה לפעמים, מיקרו אופטימיזציה אכן לא משפיעה לשעתה, אבל כשמגיע הרגע שאתה רואה ריקווסט בן 4-5 שניות, ואתה מבין שזה עוד עלול להידרדר, אז אתה פתאום מוצא את עצמך צולל בעמקי הקוד לגילוי הבעיה. וזה קרה לי ממש אתמול כשהתחלתי לטפל בבעיה כזו, התברר לי שיש קובץ טקסט שאני קורא אותו עשרות אלפי פעמים מהדיסק הקשיח (ועוד מפרסר אותו ג'ייסונאית) בעקבות לולאה שהצטרפה לחגיגה. ובמשך שנים כאשר השירות הזה ניתן ללא לולאות, אכן לא היתה לכך משמעות, ולא היה עניין "לשמר" את הטקסט הזה בזיכרון, אבל כשלולאה רצחנית נכנסה לתמונה ברור שהעסק הזה קיבל משקל עצום. לקח לי שעתיים עד שהגעתי לנקודת הקוד הזו שקבורה בעומק 4 ק"מ מתחת לאדמה.
              אז זה לא אומר שההרגלים לא היו טובים, אבל כאשר גדולי ישראל בראשות מרן ראש הפורום שליט"א (לאורו לאורו לאורו Patch Patch Patch Patch Patch) אמרו שזוהי הדרך הנכונה, אנחנו נלך בה, זה המחיר של הליכה בדרך הנכונה, וכנראה שזה שווה את המחיר.
              אגב הפתרון המובן מאליו במקרים כאלו הוא קאש מוגבל לזמן, ומקסימום אחת לכמה ריקווסטים מישהו יסבול קצת.

              אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

              yossizY תגובה 1 תגובה אחרונה
              7
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לארכיטקט ב נערך לאחרונה על ידי yossiz
                #7

                @ארכיטקט אמר בשאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק:

                כשלולאה רצחנית נכנסה לתמונה ברור שהעסק הזה קיבל משקל עצום.

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

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                א תגובה 1 תגובה אחרונה
                2
                • א מנותק
                  א מנותק
                  ארכיטקט
                  השיב לyossiz ב נערך לאחרונה על ידי
                  #8

                  @yossiz במילים אחרות אין פוליסת ביטוח נגד קללת בזעת אפך תאכל לחם.

                  אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                  תגובה 1 תגובה אחרונה
                  5
                  • D מנותק
                    D מנותק
                    davidnead
                    כתב ב נערך לאחרונה על ידי
                    #9

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

                    1. הכתיבה הלא-אופטימית היא מידי גרועה, ונדרש לתקנה בשביל רכישת ההרגל הנכון.
                    2. זה השיקול העיקרי: אם יש לך חשש שמתישהו הפונקציה תגיע למצב של קריאות כמותיות משמעותית, אפילו אם כרגע אתה לא צופה שזה יכביד, תקדיש תשומת לב לאופטימיזציה דקדקנית יותר.
                    תגובה 1 תגובה אחרונה
                    4

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום