Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[m2e-dev] Improving m2e performance


Hello List!

TLDR:
We have a large maven build (200+ projects) which is very slow to build in eclipse. I have built tools and procedures to be able to work with only a few projects open comfortably. So this is not a cry for help. I want to help improve m2e and I think this might be an interesting use case/benchmark.

Long version:
As stated above our whole product consists of over 200 different projects. A full maven build (without tests) on my laptop takes about 15 minutes on the command line ("mvn -DskipTests clean package"). In eclipse the build often does not finish at all or needs hours. I can speed up things when I open projects in groups and wait for the build to finish. Even with that workaround it might take me 2 hours until I have opened all projects. This seems very wrong as eclipse should at least roughly match the command line build speed.

To be clear: in my normal daily work I don't have to open all projects. I only ever do that for complex refactorings and things like that. Normal daily performance is no problem. Having said that: I know from the "all projects open" use case that m2e does have some issues and builds projects more than once. It is just not noticeable when I only have a dozen projects open.

So: I am offering to do any tests some of you might want to do me, give remote access or even send you the code. The last one might need some work on my side to remove non-public dependencies, maven plugins etc but that should not be a problem.

I did try to cut the problem down to a few single offending projects but performance just gradually improved/worsened (depending on your viewpoint). So I think it is really down to m2e building projects too often. Also, the builds are (in my opinion) not very complex: we do generate some code from xsd and there is one in-house built maven plugin that generates hibernate code from an xml file. Also, this is a javaee product (that ultimately generates an ear file and a standalone client) and we use m2e-wtp of course. Also, I tried to debug m2e myself but I quickly realized that I don't know enough of the eclipse build model to make any sense of the code.

This is arguably a complex setup and hard to debug but it might just make m2e so much better. Please tell me if there is interest to investigate the performance issue.



PS:
For completeness my system specs:
debian 10, 32GB ram, intel core i7-8550U, SSD, eclipse 2021-03
m2e 1.17.2.20210219-1922





Back to the top