[PATCH] 8037925: CMM Testing: an allocated humongous object at the end of the heap should not prevents shrinking the heap
Igor Ignatyev
igor.ignatyev at oracle.com
Fri Mar 28 14:03:17 UTC 2014
>>> how should I know about it? you didn't mention about it in your RFR
>> Nop, I did. Please, check my first message.
Oh, I'm sorry, I need more sleep or coffee.
in future, you can use one patch for multiple fixes, it'll solve such
situation.
> 47 private static final ArrayList< ArrayList< byte[] > > garbage = new ArrayList< ArrayList< byte[] > >();
> 59 ArrayList< byte[] > stuff = new ArrayList< byte[] >();
redundant spaces, + use diamonds
>>>>> 26 * @key gc
>>>> why do you need this?
>>> Hm, used as common practice.
if you don't understand meaning of '@key gc', please don't use it.
44-45,48-49:
According to section 9 in java code conventions[1]:
> The names of variables declared class constants and of ANSI constants should be all uppercase with words separated by underscores ("_"). (ANSI constants should be avoided, for ease of debugging.)
[1]
http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html
Igor
On 03/28/2014 05:35 PM, Andrey Zakharov wrote:
> Hi,
> here is updated webrev:
> http://cr.openjdk.java.net/~jwilhelm/8037925/webrev.03/
>
> Igor, please, see comments below.
> Thanks.
>
> On 28.03.2014 02:24, Igor Ignatyev wrote:
>> Andrey,
>>
>>>> Most probably I forgot TEST.groups again...
>> yeap, you did.
> Ok, note that due I have two unpushed changes in TEST.groups I have
> change from previous webrev.
>>
>>>>> - I can't find MemoryUsagePrinter class in testlibrary[1]
>>>> It is in webrev: http://cr.openjdk.java.net/~jwilhelm/8037924/webrev/
>> how should I know about it? you didn't mention about it in your RFR
> Nop, I did. Please, check my first message.
>>
>>>>> - please replace string constant, which use in MemoryUsagePrinter, by
>>>>> enum
>> You don't need to use enum here and string constant (Labels.*) in
>> TestDynShrinkHeap. I've mistakenly think that MemoryUsagePrinter uses
>> String argument to change its own behavior. Sorry for useless extra work.
> Yes, its just string labels and nothing more.
>
>>
>>>>> - lines 79,82: why did you use
>>>>> sun.management.ManagementFactoryHelper.getDiagnosticMXBean() instead
>>>>> of
>>>>> 'ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class)' ?
>>>> Are we talking about this?
>>>> throw new RuntimeException(
>>>> String.format("committed free heap size is not
>>>> less
>>>> than committed full heap size, heap hasn't been shrunk?%n"
>>>> + "%s = %s%n%s = %s",
>>>> MinFreeRatioFlagName,
>>>> ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class).
>>>> getVMOption(MinFreeRatioFlagName).getValue(),
>>>> MaxFreeRatioFlagName,
>>>> ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class).
>>>> getVMOption(MaxFreeRatioFlagName).getValue()
>>>> )
>> yes, we're.
> Ok, changed.
>>
>> please, use generics in 54,65 lines:
>>> 54 private static final List garbage = new ArrayList();
>>> 65 List stuff = new ArrayList();
>> and then, you won't have to use cast in line 95:
>>> 95 ArrayList stuff = ((ArrayList) garbage.get(garbage.size()
>>> - 1));
>>
> Done
>>> 26 * @key gc
>> why do you need this?
> Hm, used as common practice.
>>
>>> 64 for (int i = 0; i < 5; i++) {
>> magic number '5'
> Good point, changed
>>
>>> 61 int humonSize = Math.round(1f * PageSize);
>> I'd prefer '1.0f', but it's only my fad, it's not necessary to change.
>>
>> Thanks
>> Igor
>>
>> On 03/27/2014 04:37 PM, Andrey Zakharov wrote:
>>> Hi, here is updated webrev:
>>> http://cr.openjdk.java.net/~jwilhelm/8037925/webrev.02/
>>> Most probably I forgot TEST.groups again...
>>>
>>>
>>> On 26.03.2014 23:12, Igor Ignatyev wrote:
>>>> Hi Andrey,
>>>>
>>>> - I can't find MemoryUsagePrinter class in testlibrary[1]
>>> It is in webrev: http://cr.openjdk.java.net/~jwilhelm/8037924/webrev/
>>>> - please replace string constant, which use in MemoryUsagePrinter, by
>>>> enum
>>>> - you forgot to remove commented line 53 Hi
>>> Done
>>>> - lines 79,82: why did you use
>>>> sun.management.ManagementFactoryHelper.getDiagnosticMXBean() instead
>>>> of
>>>> 'ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class)' ?
>>> Are we talking about this?
>>> throw new RuntimeException(
>>> String.format("committed free heap size is not less
>>> than committed full heap size, heap hasn't been shrunk?%n"
>>> + "%s = %s%n%s = %s",
>>> MinFreeRatioFlagName,
>>> ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class).
>>> getVMOption(MinFreeRatioFlagName).getValue(),
>>> MaxFreeRatioFlagName,
>>> ManagementFactory.getPlatformMXBean(HotSpotDiagnosticMXBean.class).
>>> getVMOption(MaxFreeRatioFlagName).getValue()
>>> )
>>> );
>>>>
>>>> - just a nit: you again use extra spaces in some brackets:
>>>> 55,68,61,74,..
>>> Done
>>> Thanks.
>>>>
>>>> [1]
>>>> http://hg.openjdk.java.net/jdk9/hs-gc/hotspot/file/tip/test/testlibrary/com/oracle/java/testlibrary
>>>>
>>>>
>>>>
>>>> Thanks,
>>>> Igor
>>>>
>>>> On 03/26/2014 11:02 PM, Andrey Zakharov wrote:
>>>>> Test to check, that if we allocate h1, h2 and h3 humongous objects and
>>>>> free h1 and h2, after GC G1 shrinks the heap.
>>>>> webrev: http://cr.openjdk.java.net/~jwilhelm/8037925/webrev/
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8037925
>>>>>
>>>>> This test used testlibrary MemoryUsagePrinter from
>>>>> http://cr.openjdk.java.net/~jwilhelm/8037924/webrev/
>>>>>
>>>>> Thanks.
>>>>>
>>>
>
More information about the hotspot-gc-dev
mailing list