-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Speed up builds of freshly checked out branches #10519
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Who is the expected user of the quick profile?
Can you extract "Run git commit id Maven plugin only once" to separate PR. It's non-controversial and always a gain so it can be merged right now.
cc @losipiuk |
e166067
to
1707486
Compare
1707486
to
c6c51b2
Compare
598e52d
to
78e26ce
Compare
78e26ce
to
141ef0c
Compare
I'm closing this. The gain of adding options other than |
Benchmark results:
There's some variance for I also ran benchmarks for the
|
Is there some value in the first commit alone? Seems like a nice cleanup at least. |
It'll allow to avoid loading unused plugins in some cases, but the actual time difference is 1-2 second. I can open up another PR with only that if airlift/airbase#293 gets merged, there won't be any difference without it. |
Add a
quick
profile, which allows to quickly build the project without any checks or tests, assuming it has just been checked out from a clean branch (master) which has been tested by the CI workflow and is known to be correct. The new profile is supposed to make it easier, instead of having to remember all the correct properties (compare the commands in the next section).I'm not disabling any modules (like docs) on purpose, they still have to be disabled explicitly. Note that building the tarball with Provisio takes up ~25% of wall-time, and the GC and JIT take ~50%.
Timings
I ran all the commands on my macbook with the profiler enabled:
Base
Running on master (only skip tests and checks):
yields
Total time: 04:41 min
.When also skipping test compilation, building source JARs, and others:
yields
Total time: 03:48 min
.Running the same command using Maven Daemon, the 3rd run after starting the daemon yields
Total time: 01:28 min (Wall Clock)
.With the profile
Running:
yields
Total time: 03:08 min
, 40 seconds quicker.Running this 3rd time after starting the daemon:
yields
Total time: 01:19 min (Wall Clock)
, 10 seconds quicker.All the work here is based solely on https://peter.palaga.org/presentations/211021-baselone-maven-my-life-is-short/