
იაპონელმა მკვლევრებმა აწყობის დამოკიდებულებების შემოწმება 54-ჯერ დააჩქარეს
Waseda University-ს მკვლევრებმა ინსტრუმენტი mkcheck2 შექმნეს, რომელიც აწყობის დამოკიდებულებებს ptrace-ის ნაცვლად eBPF-ით ამოწმებს და გრაფის მხოლოდ შეცვლილ ნაწილს აანალიზებს. 300 პროექტზე ერთი კომიტის ანალიზი 1267,49 წამიდან 23,56 წამამდე დაჩქარდა.
იაპონელმა მკვლევრებმა შექმნეს ინსტრუმენტი, რომელიც პროგრამების აწყობის დამოკიდებულებებს წინა მეთოდებზე გაცილებით სწრაფად ამოწმებს: ptrace-ის ნაცვლად ის სისტემურ გამოძახებებს eBPF-ით აკვირდება და გრაფის მხოლოდ შეცვლილ ნაწილს აანალიზებს. The Register-ის ცნობით, mkcheck2 შემოწმების სიჩქარეს 54-ჯერ ზრდის.
აწყობის დამოკიდებულებები განსაზღვრავს, რომელი ფაილი უნდა აშენდეს ხელახლა, როცა სხვა ფაილი იცვლება. თუ ეს აღწერა არასწორია, აწყობა ან ვერ სრულდება, ან არასწორ შედეგს იძლევა.
რატომ არის შემოწმება ძვირი
ICSE 2026-ზე წარდგენილ ნაშრომში Waseda University-ს მკვლევრები Yuta Saito და Hironori Washizaki და ტოკიოს ონლაინ უნივერსიტეტის Kazunori Sakamoto აღნიშნავენ, რომ დამოკიდებულებებთან დაკავშირებული შეცდომები, გამოტოვებულიც და ზედმეტიც, მსხვილ პროექტებში აწყობის შეცდომების 50%-ზე მეტს შეადგენს.
ტრადიციული მიდგომა ptrace-ს ეყრდნობა და მომხმარებლის სივრცეში მუშაობს, ამიტომ ყოველ სისტემურ გამოძახებაზე პროცესის შეჩერება და კონტექსტის გადართვაა საჭირო. ავტორების გაზომვით, აწყობა წინა ინსტრუმენტ mkcheck-ს საშუალოდ 101,7%-ით, BuildFS-ს კი 148,0%-ით ნელდებოდა.
eBPF და ინკრემენტული ანალიზი
mkcheck2 ორ ხერხს იყენებს. Build Tracer მოდული eBPF-პროგრამებს ბირთვის სივრცეში ამუშავებს და სისტემურ გამოძახებებს რეალურ დროში ფილტრავს, ptrace-ის კონტექსტის გადართვების გარეშე. დამოკიდებულებების გრაფის ამწყობი მოდული ამ ოპერაციებიდან იმ დამოკიდებულებების აღწერას ქმნის, რომლებიც აწყობამ რეალურად გამოიყენა, და ისტორიას ინახავს. ინკრემენტული ანალიზატორი სხვადასხვა აწყობის გრაფებს ადარებს და მხოლოდ შეცვლილ ნაწილს ამოწმებს, ყველა კავშირის ნაცვლად.
„ჩვენი მიდგომა იყენებს eBPF-ს, სისტემური გამოძახებების მონიტორინგის მსუბუქ ტექნოლოგიას, და ინკრემენტულ ანალიზს, რაც შემოწმების დროს მკვეთრად ამცირებს“, - განმარტავს Washizaki. მისივე თქმით, ptrace-ზე დაფუძნებული მეთოდები ზუსტია, მაგრამ მომხმარებლის სივრცეში მუშაობის გამო დიდ დანახარჯს იწვევს.
შედეგები და შეზღუდვები
შეფასება 300 ღია კოდის პროექტს მოიცავდა, მათ შორის BuildFS-ის Make კორპუსს. საშუალო აწყობის დანახარჯი 0,3%-მდე დაეცა 101,7%-ისა და 148,0%-ის ნაცვლად, რასაც ავტორები 99,7%-მდე შემცირებად აღწერენ. ერთი კომიტის ანალიზის საშუალო დრო 1267,49 წამიდან 23,56 წამამდე შემცირდა; ათი თანმიმდევრული კომიტის შემთხვევაში ინსტრუმენტი 75-80%-ით სწრაფია.
სიზუსტე არ დაზარალებულა: 15 740 გამოტოვებული დამოკიდებულების გამოვლენის სისრულე 100%, ზედმეტისა კი 92% იყო, ცრუ დადებითების გარეშე. შეზღუდვა ერთია: საჭიროა თანამედროვე Linux-ის ბირთვი eBPF-ის მხარდაჭერითა და შესაბამისი უფლებებით, მაგალითად CAP_SYS_ADMIN-ით. Washizaki-ს თქმით, ტექნოლოგია მნიშვნელოვანი შეიძლება იყოს ღრუბლოვან და AI ინფრასტრუქტურაში, სადაც უწყვეტ ინტეგრაციაში სწრაფი შემოწმება კრიტიკულია.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.