8387377: Compilation is very slow when --module-path contains many Automatic Modules and ALL-MODULE-PATH is used.#31755
8387377: Compilation is very slow when --module-path contains many Automatic Modules and ALL-MODULE-PATH is used.#31755lahodaj wants to merge 2 commits into
Conversation
…tomatic Modules and ALL-MODULE-PATH is used.
|
👋 Welcome back jlahoda! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
Thank you thank you so much! This will make development much easier. Plus, having this work will make migration much easier for other projects too. Automatic Modules are a critical first step for projects that want to dip their toes into going fully modular. Adding the |
Automatic modules have
requires transitivedirectives to all other automatic modules. When computing the transitive readability set, javac follows all these directives, for all the modules. When there's a high number of automatic modules, this can take a long time, as for each automatic module, javac does the full loop through all the other automatic modules.This PR is attempting to improve the situation in two ways:
The enclosed test which uses 1_000 automatic modules is running in ~1s on my computer with this change; times out without it.
Progress
Warning
8387377: Compilation is very slow when --module-path contains many Automatic Modules and ALL-MODULE-PATH is used.Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/31755/head:pull/31755$ git checkout pull/31755Update a local copy of the PR:
$ git checkout pull/31755$ git pull https://git.openjdk.org/jdk.git pull/31755/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 31755View PR using the GUI difftool:
$ git pr show -t 31755Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/31755.diff
Using Webrev
Link to Webrev Comment