програмне забезпечення
Накладні витрати зменшено до 99,7%
Наче швидкість створення програмного забезпечення недостатньо прискорюється завдяки агентам кодування штучного інтелекту, комп’ютерні вчені з Японії розробили спосіб посилити процес тестування залежностей. Швидкість може збільшуватися до 54 разів.
Системи створення програмного забезпечення, такі як Make, CMake і система збирання Zig, автоматизують процес перетворення вихідного коду на виконувані програми. Вони забезпечують компіляцію вихідних файлів у правильному порядку та правильне зв’язування об’єктів. Вони забезпечують повторюване відновлення та відповідають вимогам розробки платформи, залежностям, тестам і документації.
Але, за словами Юти Сайто, Кадзунорі Сакамото та Хіронорі Вашізакі з Університету Васеда, управління специфікаціями залежностей залишається проблемою, оскільки на неї припадає більше половини помилок при конструюванні у великих проектах.
Оскільки існуючі інструменти, такі як ptrace, потребують значних витрат, дослідники розробили спосіб покращити виявлення помилок за допомогою аналізу залежностей, використовуючи розширене трасування системних викликів на основі фільтра пакетів Берклі (eBPF).
Вони розробили інструмент під назвою mkcheck2, який скорочує час і обчислювальні витрати на пошук помилок збірки програмного забезпечення. І вони пояснюють свій підхід у статті під назвою «Ефективна перевірка залежностей за допомогою eBPF і інкрементального аналізу», опублікованій на 48-й міжнародній конференції IEEE/ACM з розробки програмного забезпечення у 2026 році.
«Про це свідчить наша оцінка різноманітних проектів з відкритим кодом mkcheck2 знижує вартість виявлення помилок залежностей на 99,7% порівняно з існуючим ptraceпідходи, що ґрунтуються на технологіях, зберігаючи очевидну точність», – пояснюють автори.
«У всьому корпусі Make з 300 проектів техніка інкрементного аналізу скорочує середній час аналізу на експорт із 1267,49 секунди до лише 23,56 секунди, що дозволяє безперервно тестувати залежності в реальних середовищах розробки».
Це приблизно в 54 рази швидше для кожного завдання.
Дослідники кажуть, що відстеження викликів їхньої системи eBPF значною мірою дозволяє уникнути накладних витрат ptrace.
eBPF дозволяє запускати коробкові програми всередині ядра, де вони можуть виконувати завдання, пов’язані з мережею, моніторингом, безпекою та іншими низькорівневими операціями. Його використовували для покращення продуктивності в таких службах, як Strobelight Meta.
«Виконуючи код трасування безпосередньо в просторі ядра, ми можемо контролювати процеси збирання з мінімальним впливом на продуктивність збірки», — пояснюють автори у своїй статті. «На відміну від ptrace, який вимагає призупинення процесів і перемикання контексту для кожного системного виклику, наш підхід на основі eBPF забезпечує неінвазивне трасування, працюючи повністю в межах ядра».
Автори відзначають, що їхній підхід має деякі обмеження. Система відстеження eBPF є специфічною для Linux, тому збірки для інших операційних систем не можуть очікувати такої ж продуктивності. Існують різні сценарії побудови системи, які все ще викликають проблеми, наприклад, деякі типи надлишкових залежностей, відстеження доступу до відображених областей пам’яті, видимість залежностей для динамічно завантажуваних бібліотек, мережеві залежності та розподілені системи побудови.
Однак потенціал для mkcheck2 вартість виявлення помилок залежностей повинна бути зменшена на 99,7% ptraceБазовані підходи обіцяють заощадити багато часу. ®