Why does gradle have such a high startup overhead?


(Nikolay Botev) #1

I just downloaded the new Gradle 1.6. I love gradle. But something that has never changed through the years is the startup time. Here is an example - it takes 1 second to print the gradle version and 2.5 seconds to run the count task from the gradle tutorial. In both cases the CPU time is a quarter of a seconds or less.

So my question really is: what is gradle waiting for at startup? Is it making network requests (I am on a slow wi-fi network, but I see such wait times even when on a fast ethernet and internet connection)? Disk I/O (I have an SSD!)?

This overhead might not matter for large builds, but I am looking into using gradle for small tasks, as a replacement for bash/perl/python and as a unified approach to automating simple build-related tasks. In those cases, a fast response time would be extremely helpful.

Thanks

$ time gradle -v

------------------------------------------------------------ Gradle 1.6 ------------------------------------------------------------

Gradle build time: Tuesday, May 7, 2013 9:12:14 AM UTC Groovy: 1.8.6 Ant: Apache Ant™ version 1.8.4 compiled on May 22 2012 Ivy: 2.2.0 JVM: 1.7.0_21 (Oracle Corporation 23.21-b01) OS: Windows 8 6.2 amd64

real

0m0.929s user

0m0.090s sys

0m0.151s

Nikolay@Nikolay-W510 ~/git/benchmark_harness_java $ time gradle count :count 0 1 2 3 BUILD SUCCESSFUL

Total time: 2.227 secs

real

0m2.594s user

0m0.060s sys

0m0.211s


(Luke Daley) #2

Hi Nikolay,

You’re seeing this issue: http://forums.gradle.org/gradle/topics/performance_degradation_in_initial_gradle_invocation_when_using_1_6

It has been resolved in the nightly build.


(Peter Niederwieser) #3

Also make sure to use the Gradle Daemon.