כיווץ קובץ בינרי מבלי לפגוע בגישה הישירה ל-blobs שבתוכו (C#)
-
@dovid כתב בכיווץ קובץ בינרי מבלי לפגוע בגישה הישירה ל-blobs שבתוכו (C#):
אם אני מנחש נכון ומדובר בטקסטים תורניים זה עלול גם לשפר יעילות+ביצועי דחיסה/פריסה.
יעילות הדחיסה אכן השתפרה:
ניסיתי כעת בעצמי את ספריית ZstdNet על קובץ יבמות של תורת אמת (MN_YEVAMOT_L2.txt) עם אימון מול כל השורות ודחיסה של כל שורה בנפרד, תוצאות מצויינות: כלל השורות ביחד 12% לעומת 40% בGZipStream.
אבל הביצועים לא, הדחיסה הזו איטית משמעותית מGZipStream.
פה השאלה היא על יעילות פריסה ולא על דחיסה (שכנראה לא מבוצעת בשגרה), זה אבדוק בהמשך בע"ה. -
פוסט זה נמחק!
-
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));
זה רק להדגמה,
במציאות אתה תשמור את תוצאות האימון לקובץ ומשם תטען אותו בהמשך.