Почему построение Gradle исходного кода Kotlin приостанавливается на ~ 3 секунды «заставляя System.gc ()»?

Каждая сборка занимает дополнительные 3-4 секунды, делая паузу сразу же после выхода журнала.

[LIFECYCLE] [org.jetbrains.kotlin.gradle.plugin.KotlinGradleBuildServices] Forcing System.gc ()

Почему это «заставляет» это? Как мне избежать этого и ускорить сборку?

Я рассмотрел это, и это связано с тем, что включение журнала Gradle в режиме отладки (например, gradle --debug assemble ) .

Запустить Gradle без включенного ведения журнала отладки (например, gradle --info assemble ), и этого больше не должно быть.

Ссылки: библиотеки / инструменты / kotlin-gradle-plugin / src / main / kotlin / org / jetbrains / kotlin / gradle / plugin / KotlinGradleBuildServices.kt

Плагины Kotlin Gradle вызывают System.gc до и после сборки только при включенном ведении журнала отладки (Gradle запускается с аргументом командной строки -d или --debug ). Пользователи обычно не запускают Gradle с включенным протоколом отладки, потому что он очень шумный и медленный, поэтому принудительное использование GC является относительно незначительной проблемой.

Исторически это поведение было добавлено для тестирования утечек памяти, когда включен демон Gradle. Идея заключалась в том, чтобы регистрировать разницу в используемой памяти до и после сборки, запускать несколько сборок в результате теста и утверждать, что разница не превышает порогового значения.

Я думаю, что вызов System.gc следует избегать, если не выполняется тест KotlinGradleIT#testKotlinOnlyDaemonMemory , поэтому я создал проблему в Kotlin bugtracker https://youtrack.jetbrains.com/issue/KT-17960