Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To make things more interesting, I've transposed the (real) numbers from "my average project" onto the "imaginary" dependency graph seen in figure 1, to
better understand what is happening. The figure has "time" along the X-axis, and shows the different modules along the Y axis.

<div class="image">
<img src="Lysbilde1.JPG" alt="Figure 2"/><br/> Image Added
<div>Figure 2: Weave-mode run-time scheduling of modules in the average build, time along X axis</div>
</div><br/>

The interesting bit about this is that minor variations in the individual modules have little impact on the end-result:
the figures are to-scale so if you can keep them visible at the same time you'll see the (lack of) difference.<br/>
<div class="image">
<img src="Lysbilde2.JPG" alt="Figure 3"/><br/> Image Added
<div>Figure 3: Module E changes characteristics (becomes shorter than average), module Z follows scheduling</div>
</div><br/>

...

  • Forked executions can extend the reactor-leaf modules, altough this probably not relevant
  • The war plugin is often quite heavy
  • Integrations tests are not part of this equation. It is my impression that a lot of projects keep all integration tests in a single module,
    which basically means we're not going to be able to do anything for them<

<div class="image">
<img src="Lysbilde3.JPG" alt="Figure 4"/><br/> Image Added
<div>Figure 4: Same graph as figure 3, but with critical path runtime-leaf-module shown with red line</div>
</div><br/>

...

<h1>Number of schedulable tasks</h1>

<div class="image">
<img src="Lysbilde4.JPG" alt="Figure 4"/><br/> Image Added
<div>Figure 5: Number of schedulable tasks</div>
</div><br/>

Variations

<div class="image">
<img src="Lysbilde5.JPG" alt="Figure 5"/><br/> Image Added
<div>Figure 6: first module in reactor dependency is critical path of execution</div>
</div><br/>

...