Skip to main content

Оптимизация 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

Полезные ссылки