-
Notifications
You must be signed in to change notification settings - Fork 473
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
Add and enable build profiling extensions #1498
base: master
Are you sure you want to change the base?
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.
Looks nice to me.
Can you share screenshot of these reports?
well the build step is completed on the latest build of the MR : https://ci-builds.apache.org/job/james/job/ApacheJames/job/PR-1498/4/artifact/.profiler/profiler-report-2023-03-22-13-55-28.html
|
@jeantil already provided the link. There should also be a CSV but I'm not sure why there is no |
I had some fun with
the result for profiler-report-2023-03-22-19-11-22.json is following:
Another curiosity I noticed in https://ci-builds.apache.org/job/james/job/ApacheJames/job/PR-1498/6/artifact/.profiler/profiler-report-2023-03-22-19-11-22.html is the Artifact Downloading of 2413s so 40 minutes is dedicated to just downloading the artifacts (?!). Not sure about maven versions and the downloading itself, but recently maven got paralel downloads of dependencies (https://issues.apache.org/jira/browse/MRESOLVER-7?focusedCommentId=17692969&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17692969) and it's possible to futher improve resolution and download with additional configuration (https://issues.apache.org/jira/browse/MRESOLVER-324) - possibly worth considering as well (gives a nice speed improvement on my machine)? |
👍 to kill git-commit-id-plugin
👍 |
Is it as easy as specifying |
…e maven-remote-resources-plugin by default
Removed
I didn't know that option. The one mentioned by you is to parallel download the artifacts. One mentioned (and linked) by me is to resolve poms/dependencies in parallel as well. I included both. While building locally I also noticed that There is also elephant in the room - Scala - for 21 projects it takes ~14 minutes (9 to compile + 5 for tests) while building the rest (~250 modules) takes half that time... @chibenwa - you mentioned that slow Scala build is due to some feature/library/dependency? |
Part of the code is written in scala itself. CF https://github.com/apache/james-project/blob/master/src/adr/0024-polyglot-strategy.md CF https://www.mail-archive.com/server-dev@james.apache.org/msg66100.html |
I'm aware of that and we already talked about that (in gitter?). You mentioned particular Scala feature or library (can't recall the name) that makes the compilation particularly slow. (got it: "Actually compiling scala is slow, especially with maven, especially with macros." -- so I guess it's due to the macros? is there a possibility to somehow improve it?)
Interesting read :-) With the recent changes compilation time went from 14m21s to 9m49s |
Adds and enables maven build profiling extensions as per discussion in https://www.mail-archive.com/server-dev@james.apache.org/msg72994.html
I enabled storing profiling artifacts in build - I hope it's ok (IMHO it's better than spamming stdout).
csv
(frommaven-buildtime-extension
) is about ~0,5M andhtml
(frommaven-profiler
) is ~1,7M.EDIT: https://issues.apache.org/jira/browse/JAMES-3879