Configuration caching - register listener only once per project

To many listeners cause performance issues in Gradle.
This commit is contained in:
Andrey Uskov
2020-08-12 00:38:11 +03:00
parent d2fda2a07c
commit 20371b874a
2 changed files with 5 additions and 4 deletions
@@ -77,9 +77,9 @@ internal class KotlinGradleBuildServices private constructor(
listenerRegistryHolder.listenerRegistry!!.onTaskCompletion(kotlinGradleListenerProvider) listenerRegistryHolder.listenerRegistry!!.onTaskCompletion(kotlinGradleListenerProvider)
} else { } else {
gradle.addBuildListener(services) gradle.addBuildListener(services)
instance = services
log.kotlinDebug(INIT_MESSAGE) log.kotlinDebug(INIT_MESSAGE)
} }
instance = services
services.buildStarted() services.buildStarted()
return services return services
@@ -113,9 +113,10 @@ internal abstract class KotlinBuildStatsService internal constructor() : BuildAd
log.debug("Instantiated ${KotlinBuildStatsService::class.java}: new instance $instance") log.debug("Instantiated ${KotlinBuildStatsService::class.java}: new instance $instance")
mbs.registerMBean(StandardMBean(newInstance, KotlinBuildStatsMXBean::class.java), beanName) mbs.registerMBean(StandardMBean(newInstance, KotlinBuildStatsMXBean::class.java), beanName)
} }
}
if (!isConfigurationCacheAvailable(gradle)) { if (!isConfigurationCacheAvailable(gradle)) {
gradle.addBuildListener(instance) gradle.addBuildListener(instance)
}
} }
instance instance
} }