#android #performance #kotlin #gradle #continuous-integration
Вопрос:
Предполагая, что у нас есть следующая настройка машины сборки:
24 ядра.
16 ГБ оперативной памяти.
Версия для Котлина: 1.5.30
Я хотел бы скомпилировать исходные тексты и найти стабильную конфигурацию, чтобы избежать ошибок OOM и поддерживать оптимальную скорость
Например, в Android это может быть :app:assembleDebug
задача, которая выполняет компиляцию и создает apk
У Kotlin есть собственный демон сборки, который работает вместе с демоном gradle.
Мы должны использовать --parallel
флаг для несвязанных проектов, чтобы ускорить сборку.
И здесь самая сложная часть заключается в том, как разделить доступную оперативную память между параллельными работниками gradle и демонами котлина, чтобы предотвратить ООМ.
Какое значение следует использовать org.gradle.jvmargs
kotlin.daemon.jvm.options
--max-workers=3
, например, в и с?
Как мы можем дать для демона kotlin 4G с kotlin.daemon.jvm.options=-Xmx4G
помощью , должны ли мы установить конфигурацию gradle workers как org.gradle.jvmargs=-Xmx12G
для нашей машины сборки или 12G/3: org.gradle.jvmargs=-Xmx4G
?
Можно ли создать несколько демонов котлина и, как следствие, превысить ограничения памяти?