Free ratio based heap shrinking in the parallel collector
Hiroshi Yamauchi
yamauchi at google.com
Thu Apr 29 21:48:26 UTC 2010
OK. No problem.
On Thu, Apr 29, 2010 at 1:58 PM, Jon Masamitsu <jon.masamitsu at oracle.com> wrote:
> Hiroshi,
>
> These changes are what I was expecting after
> we had talked. I still have to look at the details but may not
> get to those for a couple of days.
>
> Jon
>
> On 04/28/10 13:37, Hiroshi Yamauchi wrote:
>>
>> Jon,
>>
>> Here's an update based on what we discussed:
>>
>> http://cr.openjdk.java.net/~rasbold/69XXXXX/webrev.02/
>>
>> The summary of the latest changes is that
>>
>> 1. On minor collections, the free ratio is computed based on the young
>> gen heap, rather than both the young gen and the old gen heaps.
>>
>> 2. When -XX:-UseAdaptiveSizePolicy, the free ratio based resizing
>> happens on normal collections, rather than just on System.gc() when
>> -XX:+PSResizeByFreeRatioWithSystemGC.
>>
>> Hiroshi
>>
>>
>> On Tue, Apr 13, 2010 at 11:21 AM, Hiroshi Yamauchi <yamauchi at google.com>
>> wrote:
>>
>>>
>>> Hi Jon,
>>>
>>> I finally got to this. Here's the webrev for a second version based on
>>> our discussion (thanks to Chuck Rasbold):
>>>
>>> http://cr.openjdk.java.net/~rasbold/69XXXXX/webrev.01/
>>>
>>> The summary of change is that the logic for expansion based on
>>> MinHeapFreeRatio was added and only the flag for the System.gc was
>>> retained (and renamed to PSResizeByFreeRatioWithSystemGC.)
>>>
>>> Thanks,
>>> Hiroshi
>>>
>>>
>>> On Thu, Apr 1, 2010 at 9:02 AM, Jon Masamitsu <jon.masamitsu at oracle.com>
>>> wrote:
>>>
>>>>
>>>> On 03/31/10 11:26, Hiroshi Yamauchi wrote:
>>>>
>>>>>
>>>>> ...
>>>>>
>>>>> I think we agree that it's a good idea to try to shrink the heap in
>>>>> response to System.gc() in such a scenario/app.
>>>>>
>>>>
>>>> Yes on the shrinking on a System.gc() and perhaps for symmetry also
>>>> expanding
>>>> a small heap to MinFreeHeapRatio? UseAdaptiveSizePolicy will shrink the
>>>> heap
>>>> down during periods of low activity and it might be useful to swiftly
>>>> expand
>>>> the
>>>> heap on a System.gc().
>>>>
>>>>>
>>>>> Since we are talking about a setting where the free ratio flags takes
>>>>> precedence over the psAdaptiveSizePolicy's throughput goals, the
>>>>> suggested
>>>>> logic in the original webrev is perhaps not so terrible? If so, I
>>>>> suppose
>>>>> the logic for UseFreeRatioOnlyInSystemGCForParallelGC does help with
>>>>> that
>>>>> because it can shrink the heap regardless of the throughput goal. It
>>>>> may
>>>>> make sense to remove UseFreeRatioForParallelGC and keep
>>>>> UseFreeRatioOnlyInSystemGCForParallelGC only. If you'd like to see it
>>>>> happen
>>>>> inside psAdaptiveSizePolicy instead, the current webrev does not work.
>>>>>
>>>>>
>>>>
>>>> I like the structure of the original webrev with regard to the logic for
>>>> using FreeRation. It's simpler than embedding it in the
>>>> PSAdaptivesizePolicy.
>>>>
>>>>
>>>> 243 if (UseFreeRatioOnlyInSystemGCForParallelGC &&
>>>> 245 gc_cause == GCCause::_java_lang_system_gc)) {
>>>> compute_new_size(); <<<<<<<< generalization of
>>>> <<<<<<<< try_to_shrink_by_free_ratio()
>>>> 248 } else {
>>>> use current UseAdaptiveSizePolicy
>>>> }
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>
>
More information about the hotspot-gc-dev
mailing list