On Fri, 26 Jul 2024 06:08:03 GMT, Thomas Stuefe <stu...@openjdk.org> wrote:

>> Some minor improvements to CompilationMemoryStatistic. More details are in 
>> [JDK-8337031](https://bugs.openjdk.org/browse/JDK-8337031)
>> 
>> Testing:
>>   test/hotspot/jtreg/compiler/print/CompileCommandPrintMemStat.java
>>   
>> test/hotspot/jtreg/serviceability/dcmd/compiler/CompilerMemoryStatisticTest.java
>
> src/hotspot/share/compiler/compilationMemoryStatistic.cpp line 118:
> 
>> 116:   if (total != _current) {
>> 117:     log_info(compilation, alloc)("WARNING!!! Total does not match 
>> current");
>> 118:   }
> 
> Why do we calculate total? Just for this test? I would then put this into an 
> ASSERT section, and make the info log an assert. 
> 
> However, I wonder if this is really needed. The logic updating both _current 
> and _tags_size is pretty straightforward, I don't see how there could be a 
> mismatch.

This code should not have been there. I forgot to remove it. There is no use of 
`total` here.

> src/hotspot/share/compiler/compilationMemoryStatistic.cpp line 204:
> 
>> 202:   size_t _total;
>> 203:   // usage per arena tag when total peaked
>> 204:   size_t _tags_size_at_peak[Arena::tag_count()];
> 
> Can you please make sure Arena::tag_count() evaluates to constexpr? When in 
> doubt, just use the enum value instead.

Arena::tag_count() is declared as a constexpr. I wanted to avoid writing 
`static_cast<int>(Arena::Tag::tag_count)` every time I need tag_count, so I 
wrapped it in Arena::tag_count() and declared it with constexpr. Is that not 
sufficient to make it a constexpr?

> src/hotspot/share/compiler/compilationMemoryStatistic.cpp line 242:
> 
>> 240:     for (int tag = 0; tag < Arena::tag_count(); tag++) {
>> 241:       st->print_cr("  " LEGEND_KEY_FMT ": %s", Arena::tag_name[tag], 
>> Arena::tag_desc[tag]);
>> 242:     }
> 
> use x macro?

What do you mean by x macro? Do you have an example that shows the use of x 
macro?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20304#discussion_r1693443814
PR Review Comment: https://git.openjdk.org/jdk/pull/20304#discussion_r1693443227
PR Review Comment: https://git.openjdk.org/jdk/pull/20304#discussion_r1693445269

Reply via email to