I have narrowed down the performance regression to the modularity check 
introduced in JDK-8240169. Since this check is not necessary if we know that 
the element list's modularity matches that of the library we can omit the 
modularity check when linking to platform libraries using our own element 
lists. 

Unfortunately, while recent element lists match the modular JDK libraries, the 
ones for JDK 9 and 10 do not. The patch therefore adds module tags to the lists 
for these two versions. For JDK 10, this is a relatively simple change because 
the packages were already ordered by module. For JDK 9 the change unfortunately 
requires changing the order of packages. I've written a small utility program 
to convert the list and have double-checked its content matches the old list.

Performance should be very close to where it was before the regression. I 
haven't run the benchmarks on the final version because I currently have some 
background tasks running, but I will do so eventually before integration.

-------------

Commit messages:
 - JDK-8255059: Regressions >5% in all Javadoc benchmarks in 16-b19

Changes: https://git.openjdk.java.net/jdk/pull/2221/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2221&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8255059
  Stats: 787 lines in 4 files changed: 447 ins; 331 del; 9 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2221.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2221/head:pull/2221

PR: https://git.openjdk.java.net/jdk/pull/2221

Reply via email to