This value must be the same in project global but caching it in VersionConfiguringAction is enough for performance.
AS-IS: .getAllprojects() called every project x configuration x dependency
TO-BE: .getAllprojects() called every project x configuration (I'm not sure about this)
Profiler result (n = 1)
Condition:
large scale project (modules > 200 & configurations ~ 50 because of applied many plugins)
But set setApplyMavenExclusions(false) for fast configuration reload.
I noticed that adding spring-boot-dependency plugin makes IntelliJ gradle project reloading longer.
In summary, I found 2 major reason.
.getAllprojects()
and it's not optimized for frequent call.(I wrote some things in https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/288)
This PR introduces a cache of local project names. (This is the same thing of already done for
directDependencies
https://github.com/spring-gradle-plugins/dependency-management-plugin/blame/master/src/main/java/io/spring/gradle/dependencymanagement/internal/VersionConfiguringAction.java#L86-L96)This value must be the same in project global but caching it in
VersionConfiguringAction
is enough for performance.AS-IS:
.getAllprojects()
called everyproject x configuration x dependency
TO-BE:.getAllprojects()
called everyproject x configuration
(I'm not sure about this)Profiler result (n = 1)
Condition:
setApplyMavenExclusions(false)
for fast configuration reload.Frame graph / Before
Frame graph / After