RFR: JDK-8290870: NMT: Increase MallocSiteTable size and allocate it only when needed
Thomas Stuefe
stuefe at openjdk.org
Mon Jul 25 05:22:05 UTC 2022
On Fri, 22 Jul 2022 19:07:58 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:
>> MST size is too small. It was created with a very strict footprint limit, since it needed to be created statically and unconditionally.
>>
>> However, [JDK-8256844](https://bugs.openjdk.org/browse/JDK-8256844) reworked NMT initialization and now we can move MST initialization to after argument parsing. Since it is only needed with -XX:NativeMemoryTracking=detail, it makes sense to only conditionally allocate it.
>>
>> And therefore we can afford to make it larger.
>>
>> At the moment, it is 511 entries wide. A typical VM run (release VM, reasonably complex scenario) comes to ~3000-6000 entries. Atm the median bucket chain length is 6-8, which is a lot.
>>
>> Increasing table size to ~4000 drops median bucket chain length to 1, which is nice.
>>
>> Example, spring petclinic boot up:
>>
>> before:
>>
>> Bucket chain length distribution:
>> unused: 1
>> longest: 14
>> median: 7
>>
>>
>> with table size 4099:
>>
>> Bucket chain length distribution:
>> unused: 1751
>> longest: 5
>> median: 1
>
> LGTM
Thanks @zhengyu123 and @dholmes-ora !
-------------
PR: https://git.openjdk.org/jdk/pull/9613
More information about the hotspot-runtime-dev
mailing list