Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - Затишна Галера
Added 06 Jan 2025

Затишна Галера

@Zatishna_Galera
Number of subscribers: 2 705
Photos: 1,340
Videos: 429
Links: 1,810
Description:
Голова Одеського центру розробки DataArt та Delivery Director, капітан Затишної Галери, ділитимуся: завданнями із співбесід (QA/Delivery/Management), статтями, вакансіями, новинами зі світу IT. Контакт: [email protected] ; Patreon: patreon.com/CozyGalley
Source

Затишна Галера | iOSКомпас 🧭1️⃣5️⃣2️⃣ Завдання 152Як працює Compilation Cache в Xcode?Я...

Telegram community logo - Затишна Галера Затишна Галера @Zatishna_Galera
576 Views/Reach 2026-04-29 10:01 Message №2622
#iOSКомпас 🧭1️⃣5️⃣2️⃣ Завдання 152Як працює Compilation Cache в Xcode?Як то кажуть, доброго дня шановне панство. Продовжуємо розбирати питання для початківців в ios розробці. З вами знову Сергій @badlinkschannel, не забувайте підписатися. Розробники під iOS добре знають: чим серйозніший проєкт, тим довше він збирається. Додав пару рядків - чекай. апустив збірку на CI - знову чекай. У нових підходах до збірки зʼявляється механізм, який намагається розірвати це порочне коло - Compilation Cache.🔣 У чому проблема:Щодня в команді відбувається одне й те саме. Кілька розробників працюють у паралельних гілках. CI-сервер перебирає кожен пул-реквест з нуля. Ті самі залежності та внутрішні модулі компілюються знову і знову. Більша частина цієї роботи - зайва.DerivedData не завжди вирішував цю задачу. Це тимчасове сховище, яке при проблемах радять просто видалити. Зручно для локальної відладки, але не дає жодних гарантій повторного використання збірок.🔣 Що пропонує Compilation Cache:Результати компіляції можна зберігати в кеш усвідомлено і з можливістю повторного використання. Ключова ідея: система визначає, чи можна переюзати результат компіляції, виходячи з того, що саме змінилося. Якщо вихідні файли, налаштування компілятора або тулчейн не змінювалися - робота не повторюється, а результат береться з кешу.Особливо помітно це при перемиканні між гілками, коли частини проєкту не перетинаються, і при повторних збірках, якщо кеш уже «прогрітий».🔣 Де різниця буде помітна: Перемикання гілок. Якщо гілки зачіпають різні частини проєкту, кеш допомагає уникнути перекомпіляції модулів, які не змінювалися. Повторні збірки. Коли артефакти збережені і доступні, частину роботи можна не виконувати повторно. CI з великим потоком пул-реквестів. Якщо налаштувати збереження кешу між запусками, обсяг повторної роботи помітно зменшується.🔣 Чому не всім стане сильно швидше: Компіляція - не єдина стадія збірки. Обробка асетів, копіювання файлів, скриптові фази (лінтери, генерація коду), лінковка та вбудовування - усе це може залишатися вузьким місцем. Якщо збірка гальмує через них, кеш компіляції не допоможе.#️⃣ Compilation Cache - це логічний розвиток інкрементальної збірки. Він не вирішить усі проблеми продуктивності і не замінить грамотну організацію проєкту, але бʼє точно в болючу точку - повторну компіляцію того, що вже було зібрано.@Zatishna_Galera