On Fri, 27 May 2022 07:22:11 GMT, Thomas Stuefe <[email protected]> wrote:

>>> I think the right fix is to just convert the MetaspacePool into 
>>> NonClassMetaspacePool and only report the non-class values.
>> 
>> Yes, it's okay for me. But I have another concern.
>> 
>> The compressed class pool is not directly used by other VM components. 
>> However, memory pools are exposed via java management APIs. At JDK level, 
>> users could obtain memory pools and choose a specified pool by name. If 
>> adapting the first solution, I guess it's somewhat strange for users to 
>> understand what is `Non Class Space`:
>> 
>>   private static MemoryPoolMXBean getMemoryPool(String name) {
>>         List<MemoryPoolMXBean> pools = 
>> ManagementFactory.getMemoryPoolMXBeans();
>>         for (MemoryPoolMXBean pool : pools) {
>>             if (pool.getName().equals(name)) {
>>                 return pool;
>>             }
>>         }
>> 
>>         throw new RuntimeException("Expected to find a memory pool with name 
>> " + name);
>>     }
>>   public static void foo() {
>>      MemoryPoolMXBean a = getMemoryPool("Compressed Class Space");
>>      MemoryPoolMXBean a = getMemoryPool("Non Class Space");
>>   }
>> 
>> If we remove `CompressedClassSpace`, we can only 
>> `getMemoryPool("Metaspace")`. Although metaspace is not baked in the 
>> specification, IMHO it's easier for developers to understand what is 
>> `metaspace` compared to the concepts of `Non Class Space` and `Compressed 
>> Class Space`.
>
>> 
>> If we remove `CompressedClassSpace`, we can only 
>> `getMemoryPool("Metaspace")`. Although metaspace is not baked in the 
>> specification, IMHO it's easier for developers to understand what is 
>> `metaspace` compared to the concepts of `Non Class Space` and `Compressed 
>> Class Space`.
> 
> I personally think that would be totally fine.

@tstuefe Can you please take a look at test changes? Thanks!

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

PR: https://git.openjdk.org/jdk/pull/8831

Reply via email to