RFR (XS) 8222818: NMT summary could show the GC in use
David Holmes
david.holmes at oracle.com
Tue Apr 23 22:17:02 UTC 2019
On 24/04/2019 6:50 am, Zhengyu Gu wrote:
>
>
> On 4/23/19 2:53 PM, Eric Caspole wrote:
>> Hi Zhengyu,
>> Hopefully this email comes through in monospace, the alignment is OK
>> for me:
>>
>>
>> currently:
>>
>> - GC (reserved=379056KB, committed=93220KB)
>> (malloc=39184KB #2159)
>> (mmap: reserved=339872KB, committed=54036KB)
>>
>>
>> My version:
>>
>>
>> - GC - g1 gc (reserved=379090KB, committed=93254KB)
>> (malloc=39218KB #2194)
>> (mmap: reserved=339872KB, committed=54036KB)
>>
>>
>> so it is aligned going to the left off the parenthesis like the
>> current version. Is that what you mean? I like the way the GC stands
>> out like this but it is OK to put it in the parentheses on the right.
>
> Different GC has different name, it is hard to get them all aligned
> right, and it does not worth the effort.
AFAICS The code already "reserves" 26 characters just to print "GC",
which is right-aligned. So all this does is take some of the 24 existing
spaces and fill them in with the GC name so you end up with:
GC - g1 gc (reserved=379056KB, committed=93220KB)
(malloc=39184KB #2159)
(mmap: reserved=339872KB, committed=54036KB)
or
GC - shenandoah gc (reserved=379056KB, committed=93220KB)
(malloc=39184KB #2159)
(mmap: reserved=339872KB, committed=54036KB)
etc. Only nit is that 26 seems to small for "concurrent mark sweep gc".
Also the alignment of 26 could be specified dynamically based on the
length of the hs_err_name() string if needed.
David
-----
>
> So, my suggestion is to place GC name inside parentheses, and you don't
> have to deal with indents to the left.
>
> e.g.
>
>
> - GC (reserved=379056KB, committed=93220KB by g1 gc)
> (malloc=39184KB #2159)
> (mmap: reserved=339872KB, committed=54036KB)
>
>
> Thanks,
>
> -Zhengyu
>
>>
>> Thanks,
>> Eric
>>
>>
>>
>> On 4/22/19 21:57, Zhengyu Gu wrote:
>>>
>>>
>>> On 4/22/19 8:19 PM, David Holmes wrote:
>>>> Hi Eric,
>>>>
>>>> On 23/04/2019 8:13 am, Eric Caspole wrote:
>>>>> Hi, could I have reviews and any opinions on this little change to
>>>>> show the GC name in the NMT output, as this helps us to more easily
>>>>> triage performance data.
>>>>
>>>> The idea seems fine.
>>>
>>>>
>>>> For the implementation wouldn't it be simpler to do something like:
>>>>
>>>> if (flag == mtGC) {
>>>> out->print("%s - %s (", NMTUtil::flag_to_name(flag),
>>>> GCConfig::hs_err_name());
>>>> } else {
>>>> out->print("-%26s (", NMTUtil::flag_to_name(flag));
>>>> }
>>>>
>>> Yes, this is simpler.
>>>
>>> I don't like where the name is placed, it screws up section
>>> alignments. I would prefer to place name inside parenthesis. e.g.
>>>
>>> - GC (g1 gc reserved=379056KB, committed=93220KB)
>>>
>>> Thanks,
>>>
>>> -Zhengyu
>>>
>>>> and skip the need for a local buffer and snprintf?
>>>>
>>>> Aside: it's probably used in enough different contexts that
>>>> GCConfig::hs_err_name should be renamed.
>>>>
>>>> Also if the VM terminates during initialization is it possible for
>>>> this code to be executed before the GCConfig has been setup? And if
>>>> so how will it behave?
>>>>
>>>> Thanks,
>>>> David
>>>>
>>>>> This passed tier 1 and 2.
>>>>> Thanks,
>>>>> Eric
>>>>>
>>>>>
>>>>> JBS:
>>>>> https://bugs.openjdk.java.net/browse/JDK-8222818
>>>>>
>>>>> webrev:
>>>>> http://cr.openjdk.java.net/~ecaspole/JDK-8222818/02/webrev/
More information about the hotspot-runtime-dev
mailing list