On 23/06/2011, at 2:39 AM, M A wrote:

> Hi Adam,
> 
> Confirmed. It's this fragment that's eating all the time:
> 
> jar {
>  from {
>    dependencies.collect {
>      it.isDirectory() ? it : zipTree(it)
>    }
>  }
> }
> 
> I was hoping that making the expression passed to jar.from a closure
> would make it lazily evaluated.

That's what should be happening.

Can you replace the from { } closure with something like this:

from { throw new RuntimeException('should be lazy') }

And send in the stack trace when you run with gradle -d? This should let us see 
what's triggering the evaluation.


> I don't think this configuration can
> be moved to a doFirst. Perhaps I can move this to a task class and
> keep my implicit input/output declarations? What would you do to
> resolve this?
> 
> Cheers,
> Merlyn
> 
> On Tue, Jun 21, 201 at 4:55 PM, Adam Murdoch
> <[email protected]> wrote:
>> 
>> On 22/06/2011, at 8:58 AM, M A wrote:
>> 
>> Hi all,
>> 
>> My gradle build is eating almost 30 seconds even before it considers
>> executing any tasks. How do I best go about diagnosing the problem?
>> 
>> A common problem is accidentally resolving dependencies at configuration
>> time, rather than at execution time. This can make the configuration phase
>> quite slow, particularly if those dependencies include dynamic revisions or
>> snapshots.
>> The profiling report does not yet give you any information about how long
>> dependency resolution takes, or where in the build it happens. We do want to
>> add this at some point.
>> What you could do in the meantime is comment out all the dependencies
>> (temporarily, of course), and see if this has an effect on the execution
>> time for, say, 'gradle help'.
>> 
>> 
>> Cheers,
>> Merlyn
>> 
>> =========== details ============
>> 
>> When I run this command:
>> 
>> gradle --profile tasks
>> 
>> Here's the output:
>> 
>> Summary
>> Total Build Time 33.494
>> Startup 1.268
>> Settings and BuildSrc 0.617
>> Loading Projects 0.539
>> Configuring Projects 28.697
>> Total Task Execution 1.649
>> 
>> When I run in debug mode
>> 
>> gradle -d tasks
>> 
>> Then I get 33890 lines of output, of which 33456 are IvyLoggingAdapter.
>> 
>> I noticed the log messages of the form "took XX secs". 223 lines
>> mention "secs". These are the ones that are 0.1 seconds or greater:
>> 
>> 15:41:34.253 [DEBUG]
>> [org.gradle.initialization.ScriptEvaluatingSettingsProcessor] Timing:
>> Processing settings took: 0.665 secs
>> 15:41:34.761 [DEBUG] [org.gradle.initialization.BuildLoader] Timing:
>> Loading projects took: 0.506 secs
>> 15:41:40.091 [DEBUG] [org.gradle.configuration.BuildScriptProcessor]
>> Timing: Running the build script took 5.323 secs
>> 15:41:40.860 [DEBUG] [org.gradle.configuration.BuildScriptProcessor]
>> Timing: Running the build script took 0.125 secs
>> 15:41:41.031 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultSettingsConverter]
>> Timing: Ivy convert for resolve took 0.136 secs
>> 15:41:42.976 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.moduleconverter.ResolveModuleDescriptorConverter]
>> Timing: Ivy convert for resolve took 1.328 secs
>> 15:41:42.985 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.moduleconverter.PublishModuleDescriptorConverter]
>> Timing: Ivy convert for publish took 1.337 secs
>> 15:41:45.892 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.moduleconverter.ResolveModuleDescriptorConverter]
>> Timing: Ivy convert for resolve took 1.046 secs
>> 15:41:45.896 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.moduleconverter.PublishModuleDescriptorConverter]
>> Timing: Ivy convert for publish took 1.05 secs
>> 15:41:47.291 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 4.305 secs
>> 15:41:47.406 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyReportConverter]
>> Timing: Translating report for configuration configuration
>> ':PATH:SOMEPROJECT' took 0.103 secs
>> 15:41:49.120 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.849 secs
>> 15:41:50.230 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.42 secs
>> 15:41:51.287 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.401 secs
>> 15:41:52.599 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.491 secs
>> 15:41:53.646 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.391 secs
>> 15:41:54.909 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.465 secs
>> 15:41:56.088 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.509 secs
>> 15:41:57.078 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.334 secs
>> 15:41:57.384 [DEBUG] [org.gradle.configuration.BuildScriptProcessor]
>> Timing: Running the build script took 0.134 secs
>> 15:41:58.419 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.602 secs
>> 15:41:59.438 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.259 secs
>> 15:42:00.682 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 0.649 secs
>> 15:42:02.780 [DEBUG]
>> [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyResolver]
>> Timing: Ivy resolve took 1.092 secs
>> 15:42:03.777 [DEBUG] [org.gradle.configuration.BuildScriptProcessor]
>> Timing: Running the build script took 0.764 secs
>> 15:42:03.954 [DEBUG] [org.gradle.configuration.BuildScriptProcessor]
>> Timing: Running the build script took 0.168 secs
>> 15:42:05.832 [DEBUG] [org.gradle.execution.DefaultTaskGraphExecuter]
>> Timing: Executing the DAG took 1.188 secs
>> 15:42:05.834 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 33.536
>> secs
>> 
>> I'm using Gradle 1.0-milestone-3.
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>> 
>>    http://xircles.codehaus.org/manage_email
>> 
>> 
>> 
>> 
>> --
>> Adam Murdoch
>> Gradle Co-founder
>> http://www.gradle.org
>> VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
>> http://www.gradleware.com
>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>    http://xircles.codehaus.org/manage_email
> 
> 


--
Adam Murdoch
Gradle Co-founder
http://www.gradle.org
VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com

Reply via email to