RFR: 8293020: jmod should not be treated as "small" tool for large modules [v2]
Erik Joelsson
erikj at openjdk.org
Mon Aug 29 16:54:11 UTC 2022
On Mon, 29 Aug 2022 13:07:00 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> This is similar to [JDK-8245168](https://bugs.openjdk.org/browse/JDK-8245168), but the blanket change to allow all modules be compiled with default options is a net loss. Instead, we can hand-pick the major offenders (large modules) where running jmod with normal tool options improves performance.
>>
>> I instrumented the jmod to tell me the times it needs to create individual modules, and hand-picked three top modules that take multiple seconds to run.
>>
>> Motivational `make clean-images images` times:
>>
>>
>> # x86_64 Server, release
>>
>> # Baseline
>> real 0m12.040s
>> user 1m4.872s
>> sys 0m10.805s
>>
>> # Patched
>> real 0m10.785s ; <--- 1.2s faster
>> user 1m7.031s
>> sys 0m10.985s
>>
>> # x86_64 Server, fastdebug
>>
>> # Baseline
>> real 0m19.263s
>> user 2m42.317s
>> sys 0m18.537s
>>
>> # Patched
>> real 0m17.911s ; <--- 1.1s faster
>> user 2m52.810s
>> sys 0m19.092s
>>
>>
>> # x86_64 Server, slowdebug
>>
>> # Baseline
>> real 0m44.799s
>> user 10m7.106s
>> sys 0m17.578s
>>
>> # Patched
>> real 0m46.975s ; <--- 2.5 sec slower
>> user 11m1.155s
>> sys 0m17.060s
>>
>>
>> I think we can accept the `slowdebug` regression in favor of improvements on `release` and `fastdebug` that most people seem to be building every day.
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>
> Indent
Marked as reviewed by erikj (Reviewer).
make/CreateJmods.gmk line 230:
> 228:
> 229: # Unless we are creating a very large module, use the small tool JVM options
> 230: JMOD_SMALL_FLAGS=
Missed this at first, but we try to stick to := assignment unless we really need the lazy evaluation. Not really an issue here other than consistency.
-------------
PR: https://git.openjdk.org/jdk/pull/10062
More information about the build-dev
mailing list