maven-mvnd
maven-mvnd copied to clipboard
Have mvnd run for some popular Maven projects to show performance improvements
The project looks promising and it would make a good argument to know the performance improvement of running the builds with mvnd and without. That allows the developers to quantify the performance improvements, and take a much better call.
Projects for benchmarking
-
More....
- Quarkus
Someone should see if this is possible with Github Actions (not sure how "stable" the runs would be time-wise, but I doubt they differ much across runs).
I might take a look at this once I have the time.
How imporvenment between mvnd and mvn parallel buld? e.g. mvn -T 1C
In my viewPoint,mvnd benefit from daemon service rather than parallel build compared to maven3
Some caching is done in mvnd which provides some performance boosts even in multi-module projects. But a large part of the reduced wall-time actually comes from running a parallel build, which is similar to mvn -T 1C, though the output looks much better I'd say...
How imporvenment between mvnd and mvn parallel buld? e.g.
mvn -T 1CIn my viewPoint,mvnd benefit from daemon service rather than parallel build compared to maven3
I withdraw what I said after read https://peter.palaga.org/2021/01/11/mvnd-parallel-builds.html#smart_builder_by_default , mvnd's parallel build named smart build little different from stardard maven
I did an experiments in a multi-module projects(43 sub-modules, sorry for not able to provide the internal code) on a machine with 128 cores, with build command:
mvnd -pl $MODULES -am spotless:apply clean --no-snapshot-updates install
vs
mvn -T 1C -pl $MODULES -am spotless:apply clean --no-snapshot-updates install

scala: 2.12.12 mvn: v3.6.0, ~ 03:49min mvnd: v0.8.2, ~ 03:50min
NO performance improvements found, though the output looks much better just during building project(it seems that the stdout output is almost same, which is just rendered by mvnd during build, i.e. non-rolling view).
considering building uber-jar with maven-shade-plugin:3.4.0, the performance bottleneck maybe the conflicts check and copy deps during assemble stage (offline-all)
