חזרה
mkcheck2 מאיץ פי 54 את בדיקת תלויות הבנייה בעזרת eBPF
SiTech AI Team2 წთ. საკითხავი

mkcheck2 מאיץ פי 54 את בדיקת תלויות הבנייה בעזרת eBPF

חוקרים מאוניברסיטת ואסדה פיתחו את mkcheck2, כלי שבודק תלויות בנייה באמצעות eBPF במקום ptrace ומנתח רק את חלקי הגרף שהשתנו. ב-300 פרויקטים ירד זמן הניתוח הממוצע לכל קומיט מ-1267.49 שניות ל-23.56 שניות בלבד.

חוקרים ביפן בנו כלי שבודק תלויות בנייה של תוכנה במהירות גבוהה בהרבה משיטות קודמות: במקום ptrace הוא עוקב אחר קריאות מערכת באמצעות eBPF, ומנתח מחדש רק את חלקי גרף התלויות שהשתנו. לפי The Register, הכלי mkcheck2 מאיץ את הבדיקה עד פי 54.

תלויות בנייה מגדירות אילו קבצים מערכת הבנייה חייבת לבנות מחדש כאשר קובץ אחר משתנה. אם ההגדרה שגויה, הבנייה נכשלת או מפיקה תוצאה לא נכונה.

מדוע הבדיקה יקרה כל כך

במאמר שהוצג בכנס ICSE 2026 מדווחים יוטה סאיטו והירונורי ושיזאקי מאוניברסיטת ואסדה, יחד עם קזונורי סקמוטו מהאוניברסיטה המקוונת של טוקיו, כי שגיאות הקשורות לתלויות, חסרות ומיותרות כאחת, מהוות יותר מ-50% משגיאות הבנייה בפרויקטים גדולים.

הגישה המקובלת נשענת על ptrace, שפועל במרחב המשתמש ולכן עוצר את התהליך ומחליף הקשר בכל קריאת מערכת. לפי מדידות המחברים, זמן הבנייה עם הכלי הקודם mkcheck גדל בממוצע ב-101.7%, ועם BuildFS ב-148.0%.

תצפית eBPF וניתוח אינקרמנטלי

mkcheck2 מחליף את העומס הזה בשתי שיטות. מודול Build Tracer מריץ תוכניות eBPF בתוך הליבה ומסנן קריאות מערכת בזמן אמת בלי החלפות ההקשר ש-ptrace דורש. בונה גרף התלויות הופך את פעולות הקבצים שנצפו לתיאור של התלויות שהבנייה השתמשה בהן בפועל, ושומר את ההיסטוריה שלהן. מנתח אינקרמנטלי משווה גרפים של בניות שונות ובוחן רק את חלקי הגרף שהשתנו במקום לאמת כל קשת.

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

תוצאות ומגבלות

ההערכה כיסתה 300 פרויקטים בקוד פתוח, כולל קורפוס ה-Make ששימש את BuildFS. העומס הממוצע על הבנייה ירד ל-0.3% מרמת הבסיס, לעומת 101.7% ו-148.0% בכלים מבוססי ptrace, ירידה שהמחברים מעריכים ב-99.7% לכל היותר. זמן הניתוח הממוצע לקומיט ירד מ-1267.49 שניות ל-23.56 שניות, ועל עשרה קומיטים רצופים הכלי מהיר ב-75-80%.

הדיוק לא נפגע: המחברים מדווחים על זיהוי של 100% מ-15,740 התלויות החסרות בקורפוס ושל 92% מ-11,720 התלויות המיותרות, בלי התראות שווא. נדרשת ליבת Linux מודרנית עם תמיכה ב-eBPF והרשאות כמו CAP_SYS_ADMIN כדי לטעון תוכניות תצפית. לדברי ושיזאקי, הטכנולוגיה עשויה להיות חשובה בתשתיות ענן ו-AI, שבהן בדיקה מהירה באינטגרציה רציפה היא הכרחית.

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.