On 17/05/2013, at 9:07, Adam Murdoch <adam.murd...@gradleware.com> wrote:

> 
> The symptom is much slower script compilation in Gradle 1.6 relative to 
> previous versions, so it particularly affects those people using a particular 
> build for the first time or those who are authoring build scripts.
> 
> The cause was 2 things in combination: a much larger number of packages in 
> the default imports, now that we generate it, and some inefficiencies in how 
> we find classes in the class loader graph, in particular when looking for 
> classes that don't exist. These two things meant that the Groovy compiler was 
> spending a lot of time resolving unqualified class names when compiling 
> scripts.
> 
> The solution is a bit of caching in key places in the class loader graph.
> 
> Some numbers: For a build with 100 projects, average execution time for 
> `gradle help --recompile-scripts` is
> 
> Gradle 1.5            ~48sec
> Gradle 1.6            ~96sec
> Master                        ~24sec
> 
> The fix also knocks about about 30-40 minutes off the CI commit builds. Nice. 
> Yet to see what impact it has on the coverage builds.
> 
> The daemon is also slightly faster for each build now, thanks to the caching.

Do we have performance test coverage for this? Is it worth it?

> 
> On 14/05/2013, at 9:20 PM, Luke Daley <luke.da...@gradleware.com> wrote:
> 
>> I think we have a problem.
>> 
>> I've been seeing something like this too I think.
>> 
>> What can we ask for short of access to the project? How can we see where the 
>> time is being spent?
>> 
>> Begin forwarded message:
>> 
>>> From: Gradle <noreply.gra...@getsatisfaction.com>
>>> Subject: New problem: Performance degradation in initial Gradle invocation 
>>> when usin...
>>> Date: 14 May 2013 12:15:18 PM GMT+01:00
>>> To: luke.da...@gradleware.com
>>> 
>>> Stefan Marklund just reported this problem in Gradle:
>>> 
>>> Performance degradation in initial Gradle invocation when using 1.6
>>> 
>>> Hello All, 
>>> 
>>> After the other day having switched over to Gradle 1.6 from Gradle 1.5 I 
>>> have noticed a significant performance decrease in the initial 
>>> configuration step in Gradle 1.6 compared to the 1.5 version. With initial 
>>> invocation of gradle I mean after having done a clean code checkout 
>>> invoking Gradle for the very first time. 
>>> 
>>> See numbers below. Are you aware of any performance issue associated with 
>>> the 1.6 version? 
>>> 
>>> I have not adjusted my build script for changes pending (for Gradle 2.0) so 
>>> I do see some new deprication messages. 
>>> 
>>> My Gradle project is fairly large I'd imagine. It is a multiproject 
>>> containing 198 subprojects. 
>>> 
>>> Performance numbers for an initial 'gradle tasks' 
>>> 
>>> 
>>> Gradle 1.6: 
>>> =========== 
>>> Total time: 5 mins 25.951 secs 
>>> Total time: 5 mins 47.84 secs 
>>> Total time: 5 mins 32.74 secs 
>>> Total time: 5 mins 7.843 secs (no daemon) 
>>> Total time: 5 mins 31.888 secs (no daemon, profile) 
>>> 
>>> Profile: 
>>> Description Duration 
>>> Total Build Time 5m31.91s 
>>> Startup 1.094s 
>>> Settings and BuildSrc 3.249s 
>>> Loading Projects 0.561s 
>>> Configuring Projects 5m0.02s 
>>> Task Execution 26.779s 
>>> 
>>> Dependency resolution 1.125s 
>>> 
>>> Gradle 1.5: 
>>> =========== 
>>> Total time: 2 mins 31.647 secs 
>>> Total time: 2 mins 25.89 secs 
>>> Total time: 2 mins 21.674 secs (no demon) 
>>> Total time: 2 mins 28.045 secs 
>>> Total time: 2 mins 48.135 secs (no-daemon, profile) 
>>> 
>>> Profile: 
>>> Description Duration 
>>> Total Build Time 2m48.16s 
>>> Startup 1.060s 
>>> Settings and BuildSrc 2.417s 
>>> Loading Projects 0.573s 
>>> Configuring Projects 2m17.26s 
>>> Task Execution 26.138s 
>>> 
>>> Dependency resolution 1.164s 
>>> 
>>> 
>>> 
>>> Across the board the configuration time per subproject is about twice that 
>>> of Gradle 1.5. The other items are virtually identical. 
>>> I also supplied the dependency resolution times. 
>>> 
>>> Subsequent invocations of 'gradle tasks' are done in ~35s for both Gradle 
>>> 1.5 and 1.6. 
>>> 
>>> I hope this aids you in your analysis. 
>>> 
>>> Thank you, 
>>> Stefan Marklund
>>> Reply | Notify me when people reply
>>> 
>>> This message sent from the Gradle community on Get Satisfaction. 
>>> To unsubscribe or change your email settings, click here.
>>> 
>>> 
>>> ----------------
>>> Create a customer community for your company at GetSatisfaction.com.
>>> 
>> 
>> -- 
>> Luke Daley
>> Principal Engineer, Gradleware 
>> http://gradleware.com
>> 
>> Join me at the Gradle Summit 2013, June 13th and 14th in Santa Clara, CA: 
>> http://www.gradlesummit.com
> 
> 
> --
> Adam Murdoch
> Gradle Co-founder
> http://www.gradle.org
> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
> http://www.gradleware.com
> 
> Join us at the Gradle Summit 2013, June 13th and 14th in Santa Clara, CA: 
> http://www.gradlesummit.com
> 

Reply via email to