RFR: JDK-8255059: Regressions >5% in all Javadoc benchmarks in 16-b19 [v2]

Hannes Wallnöfer hannesw at openjdk.java.net
Tue Jan 26 09:34:43 UTC 2021


On Mon, 25 Jan 2021 14:25:59 GMT, Hannes Wallnöfer <hannesw at openjdk.org> wrote:

>> 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.
>
> Hannes Wallnöfer has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix incorrect condition for JDK 9 and 10

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java line 531:

> 529:                         DocPath pkgPath = DocPath.create(elemname.replace('.', '/'));
> 530:                         // Although being modular, JDKs 9 and 10 do not use module names in javadoc URL paths.
> 531:                         if (moduleName != null && platformVersion != 9 && platformVersion != 10) {

I know first version was fine, blame it on a lack of coffee :)

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

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


More information about the javadoc-dev mailing list