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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. כיווץ קובץ בינרי מבלי לפגוע בגישה הישירה ל-blobs שבתוכו (C#)

כיווץ קובץ בינרי מבלי לפגוע בגישה הישירה ל-blobs שבתוכו (C#)

מתוזמן נעוץ נעול הועבר תכנות
20 פוסטים 6 כותבים 528 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לOdedDvir נערך לאחרונה על ידי dovid
    #10

    @OdedDvir כתב בכיווץ קובץ בינרי מבלי לפגוע בגישה הישירה ל-blobs שבתוכו (C#):

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

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

    @pcinfogmach
    אם מדובר בחתיכות קטנות יותר, אז אני מבין סוף סוף את השאלה. התשובה היא הכיוון ש@yossiz הציע, דחיסה מבוססת מילון משותף, או מילון סטטי.
    אם אני מנחש נכון ומדובר בטקסטים תורניים זה עלול גם לשפר יעילות+ביצועי דחיסה/פריסה.

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

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

    dovidD pcinfogmachP 2 תגובות תגובה אחרונה
    2
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב נערך לאחרונה על ידי dovid
      #11

      ניסיתי כעת בעצמי את ספריית ZstdNet על קובץ יבמות של תורת אמת (MN_YEVAMOT_L2.txt) עם אימון מול כל השורות ודחיסה של כל שורה בנפרד, תוצאות מצויינות: כלל השורות ביחד 12% לעומת 40% בGZipStream.

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

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

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

        @dovid כתב בכיווץ קובץ בינרי מבלי לפגוע בגישה הישירה ל-blobs שבתוכו (C#):

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

        יעילות הדחיסה אכן השתפרה:

        ניסיתי כעת בעצמי את ספריית ZstdNet על קובץ יבמות של תורת אמת (MN_YEVAMOT_L2.txt) עם אימון מול כל השורות ודחיסה של כל שורה בנפרד, תוצאות מצויינות: כלל השורות ביחד 12% לעומת 40% בGZipStream.

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

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

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

        dovidD תגובה 1 תגובה אחרונה
        2
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          השיב לdovid נערך לאחרונה על ידי
          #13

          @dovid כתב בכיווץ קובץ בינרי מבלי לפגוע בגישה הישירה ל-blobs שבתוכו (C#):

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

          ZstdNet יותר יעיל משמעותית בחילוץ עם מילון (יותר מפי שלוש מחילוץ gzip).

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

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

          תגובה 1 תגובה אחרונה
          2
          • pcinfogmachP לא נמצא
            pcinfogmachP לא נמצא
            pcinfogmach
            השיב לdovid נערך לאחרונה על ידי pcinfogmach
            #14
            פוסט זה נמחק!
            תגובה 1 תגובה אחרונה
            0
            • pcinfogmachP לא נמצא
              pcinfogmachP לא נמצא
              pcinfogmach
              השיב לdovid נערך לאחרונה על ידי
              #15

              @dovid
              איך עושים את האימון?

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב נערך לאחרונה על ידי dovid
                #16
                var file = toratEmetLoc + @"020_MISHNA\102_SEDER_NASHIM\24_MAS_YEVAMOT\MN_YEVAMOT_L2.txt";
                
                System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
                var text = File.ReadAllText(file, Encoding.GetEncoding(1255));
                var lines = text.Split('\n');
                var linesAsBytes = lines.Select(l => Encoding.UTF8.GetBytes(l)).ToArray();
                
                //train
                var dic = DictBuilder.TrainFromBuffer(linesAsBytes.Where(l => l.Length > 100));
                var option = new CompressionOptions(dic, CompressionOptions.MaxCompressionLevel);
                
                using var compressor = new Compressor(option);
                var perLineZstd = linesAsBytes.Select(x => compressor.Wrap(x));
                

                זה רק להדגמה,
                במציאות אתה תשמור את תוצאות האימון לקובץ ומשם תטען אותו בהמשך.

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

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

                תגובה 1 תגובה אחרונה
                1
                • Aharon 0A מנותק
                  Aharon 0A מנותק
                  Aharon 0
                  כתב נערך לאחרונה על ידי
                  #17

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

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

                    @Aharon-0 עקב אחרי השרשור טוב? לא יצרתי מילון מטקסט אלא מבייטים,
                    הסיבה שאני קורא את הטקסט היא כדי לדמות קטעים קטנים (שורות).

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

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

                    תגובה 1 תגובה אחרונה
                    1
                    • Aharon 0A מנותק
                      Aharon 0A מנותק
                      Aharon 0
                      כתב נערך לאחרונה על ידי
                      #19

                      עדיין יש כאן תוספת חישוביות, מעניין מה השפעה על הביצועים של דחיסה ופריסה ?

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

                        @Aharon-0 אם כוונתך על הפיצול והקריאה כטקסט, לא התייחסתי אליהם, זו סימולציה בלבד. במציאות יהיה נטו רצפי בייטים.

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

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

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

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

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

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