maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kristian Rosenvold <kristian.rosenv...@gmail.com>
Subject Re: Parallel build scheduling explanation
Date Fri, 20 Sep 2013 05:47:59 GMT
Herve; I added the dependency to the parent pom to the docs.

Jason: In the current project I'm working with, I get the following timings:

mvn -o -T 4 clean install : 53 seconds
mvn -o clean install : 50 seconds
mvn -DskipTests -o -T 4 clean install : 14.1 seconds
mvn -DskipTests -o clean install : 16.624 seconds

This is quite a small project with a very limited fan-out hence
limited effect. I exclusively run in offline mode when benchmarking
(which I know is "cheating").

I recommend running with "sufficient" threads, use -T 10. Also, the
plugin loading is heavily synchronized, which can have a very
detrimental effect on for instance level 4 in your graph, if all the 5
nodes on that level are first-time users of the same plugin and this
plugin is slow in construction. (This is a lot more common than one
might think, since those 5 modules end up at level 4 for the same
reason).

This is actually why the concurrent preemptive plugin loading that I
started prototyping has "significant" potential. It will easily make
*every* maven build a second or two faster, mitigate the effects of
artifact resolution and avoid global synchronization points on plugin
loading. Stuart kindly found a few problems for me that I have yet to
fix, which I might consider doing over a glass of something from
northern Italy tonight - I'm anxious to find out to what extent it
breaks things ;)

Kristian


2013/9/19 Jason van Zyl <jason@tesla.io>:
> Each circle is a project in a multi-project build (I think we need to clean up our terminology,
I stopped saying multi-module built so I don't have to explain the difference between a module
and project).
>
> Kristian is correct it's the depth from the root project. Everything on level 1 can be
built simultaneously without any side-effects.
>
> On Sep 19, 2013, at 10:27 AM, Hervé BOUTEMY <herve.boutemy@free.fr> wrote:
>
>> I suppose each circle is a module
>> but I don't understand what the levels are, and how modules are dispatched
>> into levels
>>
>> Regards,
>>
>> Hervé
>>
>> Le jeudi 19 septembre 2013 18:36:49 Kristian Rosenvold a écrit :
>>> Jason sent me some questions about the parallel build that included a
>>> real nice figure. Since I'm a sucker for nice figures (especially
>>> those that others make!), I quickly updated the wiki page with this,
>>> and added some docs to describe his figure.
>>>
>>> https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
>>>
>>>
>>> Kristian
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> http://twitter.com/jvanzyl
> ---------------------------------------------------------
>
>
>
>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Mime
View raw message