From 20371b874ae02812a24325065a94367095f8873a Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Wed, 12 Aug 2020 00:38:11 +0300 Subject: [PATCH] Configuration caching - register listener only once per project To many listeners cause performance issues in Gradle. --- .../kotlin/gradle/plugin/KotlinGradleBuildServices.kt | 2 +- .../gradle/plugin/statistics/KotlinBuildStatsService.kt | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt index 8c9e6ee89dc..611d3d3b038 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinGradleBuildServices.kt @@ -77,9 +77,9 @@ internal class KotlinGradleBuildServices private constructor( listenerRegistryHolder.listenerRegistry!!.onTaskCompletion(kotlinGradleListenerProvider) } else { gradle.addBuildListener(services) - instance = services log.kotlinDebug(INIT_MESSAGE) } + instance = services services.buildStarted() return services diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt index b8981310215..af62633d919 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsService.kt @@ -113,9 +113,10 @@ internal abstract class KotlinBuildStatsService internal constructor() : BuildAd log.debug("Instantiated ${KotlinBuildStatsService::class.java}: new instance $instance") mbs.registerMBean(StandardMBean(newInstance, KotlinBuildStatsMXBean::class.java), beanName) } - } - if (!isConfigurationCacheAvailable(gradle)) { - gradle.addBuildListener(instance) + + if (!isConfigurationCacheAvailable(gradle)) { + gradle.addBuildListener(instance) + } } instance }