Would it be safe to hold on to the resolved dependencies per scope / project? So if two plugins in the same project consecutively ask for scope=test, we don't have to go fetch them again? The current impl simply leaves those dependencies around which means plugins that don't properly declare the scope they want will work in some situations.
-----Original Message----- From: Jason van Zyl [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 19, 2007 3:19 PM To: Maven Developers List Subject: Re: possible performance bottleneck in current trunk On 19 Dec 07, at 11:10 AM 19 Dec 07, Milos Kleint wrote: > Hello, > > i've started building my project with current 2.1-SNAPSHOT trunk and > I noticed the build is taking more time than before. I did a bit of > profiling. > I've executed "mvn install" on a set of 24 projects, all build > before, right before the profiling test. > > What struck me is that half of the time seems to be spent in > DefaultPluginManager.resolveTransitiveDependencies(). See attached > picture from netbeans profiler. > It was executed 82 times. I suppose the root of the problem will be > somewhere much deeper and I guess there's a way to optimize the > number of calls to the method as well. > After a bit of debugging i figured that for a single project this > method is called multiple times during execution. First the > "compile" scope is resolved, later "runtime" or "test" eventually > (depends on actual plugins bound to the project) > Ideally it should be called 24 times max as far as I understand the > problem. The BuildPlan should know up front what mojos will be > executed and what is the maximum level or dependency resolution for > the given project. > > Agreed? Is that something that I should pursue further or am I on > the wrong track? > Sure, take a look but in the plugin manager I started ripping out all the optimizations after ripping out a bunch of other code. But narrow it down for one build where 1) You don't have anything downloaded i.e. a clean repository, and 2) Where you have all the dependencies downloaded For one pass it shouldn't be resolving more then once for each plugin. I wouldn't try to start caching anything but if you're seeing more then one call per plugin then something needs to be reworked. > Milos > > PS: If anyone is interested I can send the actual netbeans profiler > dump files for browsing (via private email). > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] Thanks, Jason ---------------------------------------------------------- Jason van Zyl Founder, Apache Maven jason at sonatype dot com ---------------------------------------------------------- believe nothing, no matter where you read it, or who has said it, not even if i have said it, unless it agrees with your own reason and your own common sense. -- Buddha --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
