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

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

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

מהירות העבודה של גוגל סקריפט

מתוזמן נעוץ נעול הועבר תוכנה
23 פוסטים 5 כותבים 440 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • Y.Excel.AccessY Y.Excel.Access

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

    למעשה זה החלקים היחידים שמתקשרים עם השיטס:

    const sheet = SpreadsheetApp.openByUrl(sheetUrl).getSheetByName(sheetName);
    const table = sheet.getDataRange().getValues();
    

    בהתחלה, כאשר לא מדובר בגליון גדול
    ואז לוגיקה די פשוטה של JS, ובסוף

    for (const [i, call] of row.entries()) {
        if (call !== 'original-value') {
            sheet.getRange(rowIndex + 2, i + 1, 1, 1).setValue([call]);
        }
    }
    

    או:

    sheet.deleteRow(rowIndex + 2);
    

    לכאורה העניין הוא בשימוש ב for עם setValue ולא ב setValues אחד. כי הדבר הכבד כאן הוא הקריאה שוב ושוב לקובץ מקובץ הקוד החיצוני.
    הרחבה - (איך להזין מערך ל SHEETS בקריאה אחת) - https://stackoverflow.com/questions/11495588/write-an-array-of-values-to-a-range-of-cells-in-a-spreadsheet

    צדיק תמיםצ מנותק
    צדיק תמיםצ מנותק
    צדיק תמים
    כתב ב נערך לאחרונה על ידי צדיק תמים
    #10

    @Y-Excel-Access @צדיק-תמים אמר במהירות העבודה של גוגל סקריפט:

    האמת שבמקור עשיתי בבת אחת עדכון לכל השורה (כלומר getRange לכל השורה ואז setValues), כאשר היכן שאין מה לעדכן (לא נשלח ערך חדש עבור התא) מכניס את התוכן המקורי (שהתקבל בקריאה הראשונה),
    ועכשיו שיניתי כך שיעדכן רק היכן שיש צורך, כך שזה במקום קריאה אחת לעדכון של כל השורה, בין 1 ל7 (תלוי בכמות התאים שמתעדכנים) קריאות קטנות כדי לעדכן כל תא, אבל מבדיקה שלי זה לא גורם לאיטיות,

    כלומר שאני מכיר את הצורה הנ"ל, ובמקרה הזה היא לא מתאימה (כיוון שישנם תאים עם נוסחאות, והgetDataRange().getValues() מקבל אותם כטקסט מקובע וממילא גם הsetValues בסוף מחזיר אותם כטקסט, ודורס את הנוסחה).
    בכל מקרה כמו שכתבתי, אני לא חושב שעדכון של כל תא בשורה המסוימת בנפרד, במקום עדכון בבת אחת של כל ה1-7 תאים, הוא זה שגורם לאיטיות. הסקריפט אמור להתמודד בקלות עם כזה דבר. ראה גם מה שכתבתי בתגובה מעל 👆

    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
    טיפים

    תגובה 1 תגובה אחרונה
    0
    • צדיק תמיםצ צדיק תמים

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

      const secret = 'tgy4rugh84'
      function doPost(req) {
        if (req.parameter.secret !== secret) {
          return ContentService.createTextOutput(
            JSON.stringify({
              error: 'Unauthorized',
            })
          ).setMimeType(ContentService.MimeType.JSON);
        }
        return ContentService.createTextOutput(
          JSON.stringify({
            message: 'OK',
          })
        ).setMimeType(ContentService.MimeType.JSON);
      }
      

      לוקח לו להחזיר תשובה בין 0.9 ל1.5 שניות

      OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      כתב ב נערך לאחרונה על ידי
      #11

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

      אפילו קוד פשוט כזה לוקח לו להחזיר תשובה בין 0.9 ל1.5 שניות

      האם אתה מתכוון גם באופן שהגליון ריק לגמרי מנתונים ונוסחאות?

      צדיק תמיםצ תגובה 1 תגובה אחרונה
      2
      • OdedDvirO OdedDvir

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

        אפילו קוד פשוט כזה לוקח לו להחזיר תשובה בין 0.9 ל1.5 שניות

        האם אתה מתכוון גם באופן שהגליון ריק לגמרי מנתונים ונוסחאות?

        צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        כתב ב נערך לאחרונה על ידי צדיק תמים
        #12

        @OdedDvir
        0.9 - 1.5 שניות זה בלי שום גליון... בדיקה פשוטה של תנאי לוגי, והחזרת תשובה. תסתכל בקטע קוד שהבאתי.

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        OdedDvirO Y.Excel.AccessY 2 תגובות תגובה אחרונה
        0
        • צדיק תמיםצ צדיק תמים

          @OdedDvir
          0.9 - 1.5 שניות זה בלי שום גליון... בדיקה פשוטה של תנאי לוגי, והחזרת תשובה. תסתכל בקטע קוד שהבאתי.

          OdedDvirO מנותק
          OdedDvirO מנותק
          OdedDvir
          כתב ב נערך לאחרונה על ידי OdedDvir
          #13

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

          dovidD תגובה 1 תגובה אחרונה
          0
          • OdedDvirO OdedDvir

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

            dovidD מנותק
            dovidD מנותק
            dovid
            ניהול
            כתב ב נערך לאחרונה על ידי dovid
            #14

            @OdedDvir זה פרוייקט app script, הוא חי לעצמו ללא כל חוברת עבודה/גיליון.

            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
            OdedDvirO תגובה 1 תגובה אחרונה
            2
            • dovidD dovid

              @OdedDvir זה פרוייקט app script, הוא חי לעצמו ללא כל חוברת עבודה/גיליון.

              OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              כתב ב נערך לאחרונה על ידי OdedDvir
              #15

              אולי להשתמש ב CacheService כדי לשפר את התגובות הבאות? זה לא בדיוק פותר את שורש הבעיה...

              צדיק תמיםצ תגובה 1 תגובה אחרונה
              1
              • OdedDvirO OdedDvir

                אולי להשתמש ב CacheService כדי לשפר את התגובות הבאות? זה לא בדיוק פותר את שורש הבעיה...

                צדיק תמיםצ מנותק
                צדיק תמיםצ מנותק
                צדיק תמים
                כתב ב נערך לאחרונה על ידי צדיק תמים
                #16

                @OdedDvir לא רלוונטי במקרה הזה, הפעולה צריכה להיות על הנתונים בזמן אמת, כמו כן לאיטיות המובנית שהדגמתי כאן עם קוד פשוט של request => response בלי שום קבלת נתונים מרוחקים, זה לא יעזור.
                אבל זה כלי שימושי לפעמים, תודה שהכרת לי אותו 🙂
                עריכה - השתמשתי בו עכשיו למשהו שחסך לי הרבה קומבינות בדרכים שהכרתי... תודה!

                רק חבל שזה מוגבל לאלף רשומות... 😐

                Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                טיפים

                תגובה 1 תגובה אחרונה
                1
                • צדיק תמיםצ צדיק תמים

                  @OdedDvir
                  0.9 - 1.5 שניות זה בלי שום גליון... בדיקה פשוטה של תנאי לוגי, והחזרת תשובה. תסתכל בקטע קוד שהבאתי.

                  Y.Excel.AccessY מנותק
                  Y.Excel.AccessY מנותק
                  Y.Excel.Access
                  כתב ב נערך לאחרונה על ידי
                  #17

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

                  @OdedDvir
                  0.9 - 1.5 שניות זה בלי שום גליון... בדיקה פשוטה של תנאי לוגי, והחזרת תשובה. תסתכל בקטע קוד שהבאתי.

                  כל פעולה של APP SCRIPT המתקשרת עם SHEETS לוקחת כזה זמן, לא משנה כמה היא פשוטה. ואפילו מאקרו פשוט של 'כתוב ב A1 "אא" ' יקח לו כזה זמן.

                  -מה שאומר - לא יודע אם יש לזה פתרון אפשרי.

                  Y.Excel.Access @ gmail.com

                  dovidD ש 2 תגובות תגובה אחרונה
                  0
                  • Y.Excel.AccessY Y.Excel.Access

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

                    @OdedDvir
                    0.9 - 1.5 שניות זה בלי שום גליון... בדיקה פשוטה של תנאי לוגי, והחזרת תשובה. תסתכל בקטע קוד שהבאתי.

                    כל פעולה של APP SCRIPT המתקשרת עם SHEETS לוקחת כזה זמן, לא משנה כמה היא פשוטה. ואפילו מאקרו פשוט של 'כתוב ב A1 "אא" ' יקח לו כזה זמן.

                    -מה שאומר - לא יודע אם יש לזה פתרון אפשרי.

                    dovidD מנותק
                    dovidD מנותק
                    dovid
                    ניהול
                    כתב ב נערך לאחרונה על ידי
                    #18

                    @Y-Excel-Access לא קראת מה שכתבו, אין בכלל התקשרות לsheet.

                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    תגובה 1 תגובה אחרונה
                    3
                    • Y.Excel.AccessY Y.Excel.Access

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

                      @OdedDvir
                      0.9 - 1.5 שניות זה בלי שום גליון... בדיקה פשוטה של תנאי לוגי, והחזרת תשובה. תסתכל בקטע קוד שהבאתי.

                      כל פעולה של APP SCRIPT המתקשרת עם SHEETS לוקחת כזה זמן, לא משנה כמה היא פשוטה. ואפילו מאקרו פשוט של 'כתוב ב A1 "אא" ' יקח לו כזה זמן.

                      -מה שאומר - לא יודע אם יש לזה פתרון אפשרי.

                      ש מנותק
                      ש מנותק
                      שמחה זו הסיסמא
                      כתב ב נערך לאחרונה על ידי שמחה זו הסיסמא
                      #19

                      @Y-Excel-Access
                      מה שאומר שאין לזה אולי פתרון אפשרי בכתיבת הקוד, אבל כן יתכן ויש לזה פיתרון אפשרי עם תשלום ל google שיקצו עבור זה יותר משאבים כדי שיקח פחות זמן
                      זו הייתה השאלה מתחילה ואולי מן הראוי להתמקד בדרך הזו אם יש מישהו שיכול לעזור

                      ושוב... תודה רבה מאוד לכל מי שמנסה לעזור 😳

                      dovidD תגובה 1 תגובה אחרונה
                      0
                      • ש שמחה זו הסיסמא

                        @Y-Excel-Access
                        מה שאומר שאין לזה אולי פתרון אפשרי בכתיבת הקוד, אבל כן יתכן ויש לזה פיתרון אפשרי עם תשלום ל google שיקצו עבור זה יותר משאבים כדי שיקח פחות זמן
                        זו הייתה השאלה מתחילה ואולי מן הראוי להתמקד בדרך הזו אם יש מישהו שיכול לעזור

                        ושוב... תודה רבה מאוד לכל מי שמנסה לעזור 😳

                        dovidD מנותק
                        dovidD מנותק
                        dovid
                        ניהול
                        כתב ב נערך לאחרונה על ידי
                        #20

                        @שמחה-זו-הסיסמא לא מצאתי זכר בגוגל לתיעוד על האיטיות הזאת, אז קשה לי להאמין שיש תשלום שמסיר אותה.
                        אני גם חושב שלרוב השימושים הקלאסיים לא נוראה אם זה שניה או שלוש, כך שלדעתי הפתרון המסתמן זה פונקציית ענן שזה ממש דומה לapp script.

                        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                        ש תגובה 1 תגובה אחרונה
                        0
                        • dovidD dovid

                          @שמחה-זו-הסיסמא לא מצאתי זכר בגוגל לתיעוד על האיטיות הזאת, אז קשה לי להאמין שיש תשלום שמסיר אותה.
                          אני גם חושב שלרוב השימושים הקלאסיים לא נוראה אם זה שניה או שלוש, כך שלדעתי הפתרון המסתמן זה פונקציית ענן שזה ממש דומה לapp script.

                          ש מנותק
                          ש מנותק
                          שמחה זו הסיסמא
                          כתב ב נערך לאחרונה על ידי
                          #21

                          @dovid
                          מה הכוונה פונקציית ענן ?

                          dovidD תגובה 1 תגובה אחרונה
                          0
                          • ש שמחה זו הסיסמא

                            @dovid
                            מה הכוונה פונקציית ענן ?

                            dovidD מנותק
                            dovidD מנותק
                            dovid
                            ניהול
                            כתב ב נערך לאחרונה על ידי
                            #22

                            @שמחה-זו-הסיסמא זה כמו לשאול על רגל אחת מה זה app script.
                            צריך לפתוח נושא על איך ואיפה וכמה עולה לכתוב פונקציית ענן שעושה XYZ (אני לא יודע מה הapp script של עושה).

                            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                            ש תגובה 1 תגובה אחרונה
                            1
                            • dovidD dovid

                              @שמחה-זו-הסיסמא זה כמו לשאול על רגל אחת מה זה app script.
                              צריך לפתוח נושא על איך ואיפה וכמה עולה לכתוב פונקציית ענן שעושה XYZ (אני לא יודע מה הapp script של עושה).

                              ש מנותק
                              ש מנותק
                              שמחה זו הסיסמא
                              כתב ב נערך לאחרונה על ידי שמחה זו הסיסמא
                              #23

                              @dovid אני רק רציתי להבין מה פירוש המילים שלך
                              פונקציית ענן זה פלטפורמה מקבילה לapp script ? או שזה פונקציה לכתוב בapp script או משהו אחר ?

                              בעיקרון המעלה הגדולה של app script היא האימות של גוגל שנעשית בצורה כמעט אוטומטית
                              משא"כ במקומות אחרים שזה מאוד מסובך לעשות אימות עם גוגל

                              תגובה 1 תגובה אחרונה
                              2
                              תגובה
                              • תגובה כנושא
                              התחברו כדי לפרסם תגובה
                              • מהישן לחדש
                              • מהחדש לישן
                              • הכי הרבה הצבעות


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

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

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