Кирилл Старостин — Мониторим здоровье Gradle-сборки KMP проекта

112 подписчиков

12+
12+

1 просмотр

3 дня назад

ПожаловатьсяНарушение авторских прав

112 подписчиков

12+
12+

1 просмотр

3 дня назад

ПожаловатьсяНарушение авторских прав
12+
12+

1 просмотр

3 дня назад

Подробнее о конференции Mobius: https://jrg.su/ojGU3B — — Скачать презентацию с сайта — https://jrg.su/q52SCY Gradle-сборка нашего большого КМП-проекта жутко тормозила: больше 20 минут IDE sync, 7 минут Android debug clean build. Миллион строк кода, 30 мобильщиков, таргеты Android и iOS, 98% переиспользование UI и логики (Compose Multiplatform). Пробовали замерять оптимизации ручками, ударились о нестабильность окружения и гору ручной работы. Пробовали найти полноценное решение, чтобы мониторить здоровье сборки, — кроме Develocity «коробки» нет, а Develocity в России нельзя купить. Отдельные open-source инструменты решают только части проблемы. Статьи и доклады в интернете в основном про чистые Android-проекты, без привкуса KMP. Пришлось разобраться и собрать Франкенштейна из open-source решений и самопала. Итог — MVP системы мониторинга здоровья сборки KMP проекта, которая закрывает потребность по правилу 20/80 и легко скейлится на любые проекты компании. Ключевые элементы: * сбор живых метрик билдов с локальных машин разработчиков и CI — Talaiot + ClickHouse + Grafana; * бенчмарк сборки для точечной оценки оптимизаций — Gradle-Profiler + кастомные скрипты интерпретации измерений; * лайтовый профайлинг на основе данных из Talaiot, визуализация в Perfetto. Все три инструмента составляют «святую троицу», только вместе дают мощную синергию. Несмотря на то что проект KMP, — выгоднее всего фокуситься на мониторинге именно Android debug-сборки. Важно не забыть про IDE sync, однако измерять его крайне сложно — обсудим, как с этим жить. iOS-билд — последний по приоритету, однако тоже важно учесть. Система уже себя оправдала, расскажу про реальные кейсы ценности, например: * как вовремя предотвратили замедление сборки в 2-3 раза из-за нового антивируса; * как продали руководству ценность задачи распила проекта пополам, благодаря чему ускорили сборку в два раза. Уверены в метриках, 10 минут IDE sync, 3 минуты Android debug clean build. Дам практические рекомендации, как минимальными усилиями поднять аналогичный инструмент в рамках любого крупного проекта. Помогу понять, как продавать оптимизации сборки руководству.

Название:

Кирилл Старостин — Мониторим здоровье Gradle-сборки KMP проекта

Категория:

Разное