גרסה חדשה של rsyncrypto

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

מסתבר שבתוך ים הדברים שצריך לעשות, יצא לי קצת זמן לשחרר שתי גרסאות חדשות של rsyncrypto. הוא כרגע עומד על גרסה 0.19, ואני, כנראה, אעשה עוד קצת שינויים קלים ואז אכריז עליו כעל גרסה 1.0. ההבדלים המשמעותיים בין הגרסאות האחרונות הן שיפורי ביצועים מאוד מאוד משמעותיים.

כמה משמעותיים?

הנה עובדה מביכה. כאשר לראשונה עשיתי את ה-port של התוכנה לחלונות, רציתי לוודא שההתאמות לממשקים של חלונות עובדות כמו שצריך. כדי לעשות את זה, פיזרתי ברחבי הקוד בנדיבות קריאות לפונקציה שנקראת “OutputDebugString”. זוהי פונקציה שמדפיסה למערכת מיוחדת שהדיבאגר מחזיק טקסטים לצורך מעקב.

והנה החלק המביך. לא זו בלבד שלא ביטלתי את הקריאות האלו אחרי שהשתכנעתי שהמערכת עובדת, אפילו לא זכרתי לוודא שהן עובדות רק כשעובדים במוד של דיבאג. במילים אחרות, במשך כל גרסאות החלונות, rsyncrypto זרק לדיבאגר הודעות על כל תו שנקרא או נכתב. כמובן שלא היה דיבאגר שיתפוס את ההודעות האלו, אבל הביצועים עדיין סבלו קשות. גרסה 0.18 תיקנה את התקלה הזו, והתוצאה היתה שיפור של, בערך, פי 10 (!!!!!) בביצועים על חלונות. הביצועים על חלונות (לפחות בתוך הסביבה של ה-vmware שלי) עדיין פחות טובים מאלו של לינוקס, אבל לפחות התוכנה עובדת כבר בקצב נסבל.

הגרסה האחרונה, 0.19, כבר מבצעת שיפור ביצועים משמעותי נוסף, שנובע מזה שהקטנתי את כמות קריאות המערכת שמתבצעות לכל פעולת קריאה או כתיבה (buffered IO). אני חושב שעם השינוי הזה, המערכת כבר מספיק בשלה (ויש לה מספיק משתמשים) כדי שאני אוכל להכריז עליה כעל מוכנה להקרא “גרסת שחרור”.

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

תהנו מהתוכנה, היא חופשית….. 🙂

שחר

מאת

שחר שמש

מייסד–שותף וחבר ועד בתנועה לזכויות דיגיטליות מייסד שותף בעמותת „המקור”. פעיל קוד פתוח. מפתח שפת התכנות Practical

Bear