Оптимизация Gradle
Память и параллелизм
Эти параметры задаются в gradle.properties (глобально или в проекте):
# выделить достаточно памяти JVM
org.gradle.jvmargs=-Xmx4096m
# параллельная сборка модулей
org.gradle.parallel=true
Подробнее — в разделе Build Environment.
Build cache
Кеширует результаты сборок. Повторная сборка без изменений берёт результат из кеша, а не компилирует заново:
org.gradle.caching=true
Configuration cache (рекомендуется)
Сохраняет результат фазы конфигурации между запусками. На больших проектах даёт наибольший прирост скорости — фаза конфигурации выполняется только один раз и загружается из кеша при повторных запусках.
Доступен с Gradle 8.1:
org.gradle.configuration-cache=true
Если плагин не поддерживает configuration cache, Gradle сообщит об ошибке с указанием проблемного плагина.
В таких случаях можно оставить false и попробовать снова после обновления плагинов.
Dependency resolution
- Используйте version catalog (
libs.versions.toml) — это ускоряет разрешение зависимостей за счёт typesafe accessors - Не объявляйте зависимости, которые не используются — Gradle всё равно будет их резолвить
- Подключайте зависимости в самом узком source set (
commonMainImplementation, а неcommonMainApi, если зависимость не должна быть видна наружу)
Работа с iOS
- Для разработки используйте
iosSimulatorArm64(Apple Silicon) илиiosX64(Intel), но не все таргеты сразу — сборка всех архитектур (iosArm64+iosSimulatorArm64+iosX64) дольше embedAndSignAppleFrameworkForXcode(CocoaPods плагин KGP) кеширует собранный framework, не пересобирая его при каждом запуске из Xcode