Буряк

Понеділок, 28 вересня 2026Не просто що сталося. Що це змінює.

Пошук

Технології 4 хв читання Автор:

Японські дослідники прискорили перевірку залежностей у збірці ПЗ у 54 рази

Команда з Університету Васеда розробила інструмент mkcheck2 на базі eBPF, який знижує накладні витрати на виявлення помилок залежностей у збірках до 99,7% і скорочує середній час аналізу з 21 хвилини до 24 секунд на коміт.

Японські дослідники прискорили перевірку залежностей у збірці ПЗ у 54 рази
Японські вчені прискорили перевірку залежностей у збірці ПЗ у 54 рази

Дослідники з Університету Васеда в Японії представили метод, який суттєво прискорює перевірку залежностей у збірках програмного забезпечення. Розроблений ними інструмент mkcheck2 знижує накладні витрати на пошук помилок у залежностях на 99,7% порівняно з традиційними підходами, а швидкість аналізу зростає приблизно у 54 рази. Про це повідомляє The Register.

Системи збірки, такі як Make, CMake та Zig build, відповідають за перетворення вихідного коду на готові програми. Вони визначають порядок компіляції файлів, стежать за коректним зв’язуванням об’єктних файлів, забезпечують відтворювані перезбірки та враховують платформні особливості, залежності, тести й документацію. За словами авторів дослідження Юти Сайто, Кадзунорі Сакамото та Хіронорі Васідзакі, керування специфікаціями залежностей залишається складним завданням. У великих проєктах на нього припадає понад половина всіх помилок збірки.

Існуючі інструменти, зокрема ptrace, створюють значне навантаження, що унеможливлює часту перевірку залежностей. Команда з Васеди запропонувала замінити цей підхід трасуванням системних викликів на основі розширеного Berkeley Packet Filter (eBPF). Так з’явився mkcheck2, який скорочує час і обчислювальні витрати на виявлення помилок збірки. Дослідження «Efficient Build Dependency Verification Using eBPF and Incremental Analysis» опубліковано у матеріалах конференції IEEE/ACM з програмної інженерії 2026 року.

eBPF дає змогу запускати ізольовані програми безпосередньо в просторі ядра для мережевих завдань, спостережності, безпеки та інших низькорівневих операцій. Технологія вже допомогла підвищити ефективність у сервісах на кшталт Meta Strobelight. За словами авторів, ptrace змушує призупиняти процеси й перемикати контекст під час кожного системного виклику. Їхній підхід працює повністю всередині ядра й майже не втручається в роботу збірки.

Тести на різноманітних проєктах із відкритим кодом показали, що mkcheck2 знижує накладні витрати на виявлення помилок залежностей до 99,7% порівняно з методами на базі ptrace, а точність виявлення не погіршується. Для повного корпусу з 300 проєктів на Make інкрементальний аналіз дав такі результати: середній час аналізу на один коміт знизився з 1267,49 секунди (приблизно 21 хвилина) до 23,56 секунди. Приріст швидкості становить приблизно 54 рази. На думку авторів, це робить безперервну перевірку залежностей реалістичною в звичайних умовах розробки.

Розробники самі називають кілька застережень. Рішення працює лише на Linux, тож для збірок в інших операційних системах такого приросту не варто чекати. Складнощі залишаються з окремими видами надлишкових залежностей. Поки що проблемним є відстеження доступу до відображених у пам’ять областей. Інструмент погано бачить залежності динамічно завантажуваних бібліотек. Окремі труднощі створюють мережеві залежності та розподілені системи збірки.

Попри ці обмеження, скорочення накладних витрат до 99,7% може заощадити командам розробників чимало часу. Генеративні ШІ-агенти для написання коду вже прискорили створення софту, а тепер дослідники з Японії пропонують прискорити й перевірку збірок, що робить процес розробки ще ефективнішим.

7Перегляди

Дарина Марцинюк

Автор

Редакторка новин

Дарина Марцинюк працює з темами суспільства, політики, економіки та щоденних новин. У редакції Буряк відповідає за перевірку фактів, контекст і зрозуміле пояснення подій для читачів.