Community
Participate
Working Groups
Created attachment 285013 [details] CPU sample The scanning for projects... step spends a significant portion of its time in in the listFiles call of TychoTargetMapping::getPrimaryArtifact, caused by the File.isFile() check. public boolean accept(File file) { return file.isFile() && file.getName().endsWith(TARGET_EXTENSION) && !file.getName().startsWith(".polyglot."); } An easy improvement should be to check the file name before doing file IO.
New Gerrit change created: https://git.eclipse.org/r/c/tycho/org.eclipse.tycho/+/173647
That's a good analysis and improvement! Did you verify that you actually save those ~20 seconds after the patch is applied?
(In reply to Mickael Istria from comment #2) > That's a good analysis and improvement! Did you verify that you actually > save those ~20 seconds after the patch is applied? Not at that time and indeed the major performance issue was elsewhere. We have an additional custom pomless extension modeled after TychoAggregatorMapping, to support our legacy project structure. Disabling the original TychoAggregatorMapping (via -Dtycho.pomless.aggregator.names=-) actually saved minutes. After that the savings of this change were negligible. I'll leave the decision to you.
Pomless is always computed at runtime and thus of course has performance overhead (especially the aggregator part as it requires to perform several guess-work). You can use a static pom.tycho for the aggregator (that should also support different project strcutures).
(In reply to Christoph Laeubrich from comment #4) > Pomless is always computed at runtime and thus of course has performance > overhead (especially the aggregator part as it requires to perform several > guess-work). > You can use a static pom.tycho for the aggregator (that should also support > different project strcutures). Our projects looks like this: - root - A - plugins - features - testplugins - B - plugins - features - testplugins ... Each containing 100s of modules, so the static pom.tycho was not an option ;) The tycho aggregator doesn't support multiple "plugins" directories within a reactor and our custom one does also optionally skip the testplugins, speeding up the dependency resolution when we want to compile without tests.
Gerrit change https://git.eclipse.org/r/c/tycho/org.eclipse.tycho/+/173647 was merged to [master]. Commit: http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/commit/?id=80dc5d21a6389d36c7d102301f0cd2ab3bf94ecd