فرآیند اعتبارسنجی وابستگی نرم افزار جدید سرعت را تا 54 برابر افزایش می دهد
سربار تا 99.7 درصد کاهش یافت
گویی سرعت ایجاد نرمافزار به لطف عاملهای کدنویسی مولد هوش مصنوعی به اندازه کافی تسریع نشده است، دانشمندان کامپیوتر در ژاپن راهی برای توربوشارژ کردن فرآیند تأیید وابستگی ساخت ابداع کردهاند. سرعت می تواند تا 54 برابر افزایش یابد. سیستمهای ساخت نرمافزار مانند Make، CMake و سیستم ساخت Zig فرآیند تبدیل کد منبع به برنامههای اجرایی را خودکار میکنند. آنها اطمینان حاصل می کنند که فایل های منبع به ترتیب صحیح کامپایل شده و اشیاء به درستی پیوند داده شده اند.
آنها بازسازیهای قابل تکرار را ارائه میکنند و الزامات، وابستگیها، آزمایشها و مستندات خاص پلتفرم را مدیریت میکنند. اما طبق گفتههای Yuta Saito، Kazunori Sakamoto و Hironori Washizaki از دانشگاه Waseda، مدیریت مشخصات وابستگی همچنان یک چالش است و بیش از نیمی از خطاهای ساخت در پروژههای بزرگ را شامل میشود. از آنجایی که ابزارهای موجود مانند ptrace سربار قابل توجهی را تحمیل می کنند، محققان راهی برای بهبود تشخیص خطا با تجزیه و تحلیل وابستگی ها با استفاده از ردیابی تماس سیستم مبتنی بر فیلتر بسته برکلی (eBPF) ابداع کرده اند.
آنها ابزاری به نام mkcheck2 ایجاد کردهاند که زمان و هزینه محاسبهای لازم برای تشخیص خطاهای ساخت نرمافزار را کاهش میدهد. و آنها رویکرد خود را در مقاله ای با عنوان "تأیید وابستگی ساخت کارآمد با استفاده از eBPF و تجزیه و تحلیل افزایشی"، که در مجموعه مقالات چهل و هشتمین کنفرانس بین المللی مهندسی نرم افزار IEEE/ACM 2026 منتشر شده است، توضیح می دهند.
نویسندگان توضیح میدهند: «ارزیابی ما در مجموعهای از پروژههای منبع باز نشان میدهد که mkcheck2 در مقایسه با رویکردهای مبتنی بر ptrace موجود، در حالی که دقت تشخیص را حفظ میکند، سربار تشخیص خطای وابستگی را تا 99.7 درصد کاهش میدهد». در کل مجموعه 300 پروژه Make، تکنیک تجزیه و تحلیل افزایشی میانگین زمان تجزیه و تحلیل در هر تعهد را از 1267.49 ثانیه به تنها 23.56 ثانیه کاهش می دهد و تأیید وابستگی مداوم را در محیط های توسعه در دنیای واقعی عملی می کند. این تقریبا 54 برابر سریعتر در هر commit است.
محققان می گویند ردیاب فراخوانی سیستم مبتنی بر eBPF آنها تا حد زیادی از سربار عملکرد تحمیل شده توسط ptrace جلوگیری می کند. eBPF به برنامه های جعبه شنی اجازه می دهد تا در فضای هسته اجرا شوند، جایی که می توانند وظایفی را شامل شبکه، قابلیت مشاهده، امنیت و سایر عملیات سطح پایین انجام دهند. این برای افزایش کارایی در خدماتی مانند Meta's Strobelight استفاده شده است. نویسندگان در مقاله خود توضیح می دهند: «با اجرای کد ردیابی به طور مستقیم در فضای هسته، ما می توانیم فرآیندهای ساخت را با کمترین تأثیر بر عملکرد ساخت نظارت کنیم.
برخلاف ptrace که برای هر فراخوانی سیستم به تعلیق فرآیند و سوئیچهای متنی نیاز دارد، رویکرد مبتنی بر eBPF ما ردیابی غیرتهاجمی را با عملکرد کامل در هسته ارائه میکند. نویسندگان خاطرنشان می کنند که رویکرد آنها دارای محدودیت هایی است. سیستم ردیابی eBPF مختص لینوکس است، بنابراین سیستمهای ساخت دیگر سیستمعاملها نمیتوانند انتظار دستاوردهای مشابهی داشته باشند.
و سناریوهای سیستم ساخت مختلفی وجود دارد که هنوز چالشهایی مانند انواع وابستگیهای اضافی، ردیابی دسترسی به مناطق نقشهبرداری شده با حافظه، مشاهده به وابستگیها برای کتابخانههای بارگذاری شده پویا، وابستگیهای شبکه، و سیستمهای ساخت توزیع شده وجود دارد. با این وجود، پتانسیل mkcheck2 برای کاهش سربار تشخیص خطای وابستگی تا 99.7 درصد در مقایسه با رویکردهای مبتنی بر ptrace، وعده صرفه جویی زیادی در زمان می دهد. ®
متن اصلی (انگلیسی)
New software dependency validation process increases speeds by 54x
Overhead reduced by as much as 99.7%