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

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

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

מדידת ביצועים עם usr/bin/time/

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

    מישהו יודע להסביר מה זה כל הפרמטרים שרואים כשמוסיפים time או usr/bin/time -v
    לפני פקודה בshell ? או לפחות להפנות לדוקומנטציה מסודרת
    והאם זה אינדיקציה למהירות בזמן אמת?

    מייל: nigun@duck.com

    yossizY 2 תגובות תגובה אחרונה
    1
    • yossizY מחובר
      yossizY מחובר
      yossiz
      השיב לnigun ב נערך לאחרונה על ידי yossiz
      #2

      @nigun אמר במדידת ביצועים עם usr/bin/time/:

      מישהו יודע להסביר מה זה כל הפרמטרים שרואים כשמוסיפים time או usr/bin/time -v
      לפני פקודה בshell ?

      בבאש, time הוא פקודה מובנית של ה-shell, לעמות ‎/usr/bin/time שהוא פקודה חיצונית

      הפלט בברירת מחדל הוא:

      • real = זמן שעבר מתחילת הרצה עד סוף ההרצה (מוכר גם כ: wall clock time, כלומר כמה זמן עבר על שעון הקיר)
      • user = זמן שהוקצה עבור התהליך (ותהליכי צאצא) ב-user mode.
      • sys = זמן שהוקצה עבור התהליך (ותהליכי צאצא) ב-kernel mode.

      שני האחרונים מסמנים את הזמן המעבד היה עסוק בתהליך בפועל, זה לא כולל זמן שתהליכים אחרים היו מתוזמנים על המעבד או שהמעבד היה idle (מחכה ל-I/O וכדומה)

      שני האחרונים הם סה"כ של כל הליבות ביחד. ז. א. שאם ליבה אחת עסקה בתהליך לפרק זמן של 17ms והשנייה לזמן של 45ms, יהיה כתוב 62ms. זה יכול לצאת לפי"ז ש-user יהיה יותר מ-real

      או לפחות להפנות לדוקומנטציה מסודרת

      https://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1

      והאם זה אינדיקציה למהירות בזמן אמת?

      לא הבנתי את השאלה, מדובר במהירות בזמן אמת. (אומנם זה לא אומר בכל הרצה יהיה אותו מהירות)

      או usr/bin/time -v

      man time

      צריך שיעור ארוך בנושא מערכות הפעלה כדי להסביר כל דבר. איזה מהם מעניין אותך? (רובם לא מדברים ישירות על הזמן אלא על פרמטרים אחרים שיכולים להשפיע על זמן הריצה, כמו זכרון, I/O, וכו')

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

      nigunN תגובה 1 תגובה אחרונה
      4
      • yossizY מחובר
        yossizY מחובר
        yossiz
        השיב לnigun ב נערך לאחרונה על ידי
        #3

        @nigun שתבין יותר-
        העיקר שאתה מעוניין הוא שלוש האלה real, user, ו-sys

        • אם ה-real הוא יותר גדול מה-sys+user בהרבה, זה מצביע על זה שהתהליך לא קיבלה הרבה זמן CPU. זה יכול להיות או משום שיש תהליכים אחרים פעילים (אז תריץ time על המערכת בזמן שאין פעילות אחרת), או משום שאתה משתמש בקריאות I/O איטיות והתהליך מעביר הרבה זמן בהמתנה עבור I/O
        • אם ה-user הוא יותר גדול ממה שרצית/צפית צריך למטב את הקוד (או את הקריאות לספרייות חיצוניות)
        • אם ה-sys הוא יותר גדול ממה שרצית/צפית, צריך למטב את הקריאות לשירותי מערכת ההפעלה (system calls)

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

        תגובה 1 תגובה אחרונה
        5
        • nigunN מנותק
          nigunN מנותק
          nigun
          השיב לyossiz ב נערך לאחרונה על ידי
          #4

          @yossiz
          חזק כמו תמיד
          מתוך usr/bin/time -v מה שנראה הכי מעניין זה Percent of CPU this job got
          שלאותו פקודה לפעמים 86% ולפעמים 50% ולפעמים פחות

          מייל: nigun@duck.com

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

            @nigun אמר במדידת ביצועים עם usr/bin/time/:

            Percent of CPU this job got

            אם הבנתי נכון זה פשוט‎ (user+sys)/(real*cpu_cores‎)‎‎‎

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

            nigunN תגובה 1 תגובה אחרונה
            1
            • yossizY מחובר
              yossizY מחובר
              yossiz
              כתב ב נערך לאחרונה על ידי
              #6

              דרך אגב, ה-time המובנה של bash יכול למדוד זמן של pipeline שלם. (בגלל זה היה צורך לעשות אותו builtin)

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

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

                @yossiz אמר במדידת ביצועים עם usr/bin/time/:

                @nigun אמר במדידת ביצועים עם usr/bin/time/:

                Percent of CPU this job got

                אם הבנתי נכון זה פשוט‎ (user+sys)/(real*cpu_cores‎)‎‎‎

                זאת אומרת שאם יש תהליך IO שלוקח הרבה זמן אז הPercent of CPU this job got יותר נמוך

                מייל: nigun@duck.com

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

                  @yossiz אמר במדידת ביצועים עם usr/bin/time/:

                  דרך אגב, ה-time המובנה של bash יכול למדוד זמן של pipeline שלם. (בגלל זה היה צורך לעשות אותו builtin)

                  😕 אפשר קצת יותר הסברים לבורים כמוני (תודה מראש על הסבלנות)

                  מייל: nigun@duck.com

                  yossizY תגובה 1 תגובה אחרונה
                  0
                  • yossizY מחובר
                    yossizY מחובר
                    yossiz
                    השיב לnigun ב נערך לאחרונה על ידי
                    #9

                    @nigun האמת שלא מדוייק מה שכתבתי... זה לא פקודה בכלל - לא מובנית ולא חיצונית - אלא keyword...

                    נגיד שאתה מריץ

                    cat file | tr ' ' '\n' | sort | uniq
                    

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

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

                    תגובה 1 תגובה אחרונה
                    2

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

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

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