I like those numbers a lot!

On Sun, May 19, 2013 at 11:45 PM, Adam Murdoch
<adam.murd...@gradleware.com>wrote:

>
> Turns out this change also has a nice effect on test execution. It varies
> from around 11% faster than 1.6 for the junit and testng performance test
> projects up to almost 50% for the verbose testng test project.
>
> Anything that uses the worker process should pick up this improvement,
> which includes Groovy and Scala compilation. We don't have a performance
> test for this and I haven't measured this. Might be worth doing so.
>
> The change also add 2-5% to the IDE import tasks.
>
> With the dependency meta-data caching, the numbers for 1.7 are looking
> pretty good:
>
> - Our canonical multi project build is about 5% faster than 1.6 for both
> clean and incremental build (20% faster than 1.0).
> - The 'many dependencies' build is about 22% faster than 1.6 for both
> clean and incremental build (35% faster than 1.0).
> - Eclipse import is about 25% faster than 1.6 for the multi project build
> and 35% faster for the many dependencies build (slightly less relative to
> 1.0).
> - IDEA import is about 38% faster than 1.6 for the multi project build and
> 52% faster for the many dependencies build (slightly less relative to 1.0).
> - JUnit and TestNG execution is about 12% faster than 1.6 (18% and 14%
> faster than 1.0).
> - Verbose JUnit and TestNG execution is about 38% and 50% faster than 1.6
> (39% and 43% faster than 1.0).
> - The dependency report for the many dependencies build is 63% faster than
> 1.6 (51% faster than 1.0).
> - Build script compilation is 77% faster than 1.6 (42% faster than 1.0).
>
>
> On 17/05/2013, at 6:07 PM, 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.
>
> 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<http://forums.gradle.org/people/stefan_marklund?utm_content=profile_link&utm_medium=email&utm_source=new_topic>just
>  reported this problem in
> Gradle<http://forums.gradle.org/gradle?utm_content=company_link&utm_medium=email&utm_source=new_topic>:
>
>
> *Performance degradation in initial Gradle invocation when using 
> 1.6<http://forums.gradle.org/gradle/topics/performance_degradation_in_initial_gradle_invocation_when_using_1_6?utm_content=topic_link&utm_medium=email&utm_source=new_topic>
> *
>  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<http://forums.gradle.org/gradle/topics/performance_degradation_in_initial_gradle_invocation_when_using_1_6?do=reply&utm_content=reply_link&utm_medium=email&utm_source=new_topic>|
>  Notify
> me when people 
> reply<http://forums.gradle.org/gradle/topics/performance_degradation_in_initial_gradle_invocation_when_using_1_6/follow?utm_content=follow_link&utm_medium=email&utm_source=new_topic>
> ------------------------------
>
> This message sent from the Gradle community on Get Satisfaction.
> To unsubscribe or change your email settings, click 
> here<http://forums.gradle.org/me/notifications?utm_medium=email&utm_source=new_topic>.
>
>
> ----------------
>
> Create a customer 
> community<http://forums.gradle.org/plans?utm_campaign=create_a_community&utm_content=create1&utm_medium=email&utm_source=notifications_email>for
>  your company at
> GetSatisfaction.com <http://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
>
>
>
> --
> 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
>
>


-- 
Szczepan Faber
Principal engineer@gradleware; Lead@mockito
Join me at the Gradle Summit 2013, June 13th and 14th in Santa Clara, CA:
http://www.gradlesummit.com

Reply via email to