RFR (L): 8060025: Object copy time regressions after JDK-8031323 and JDK-8057536
Kim Barrett
kim.barrett at oracle.com
Mon Dec 15 17:38:13 UTC 2014
On Dec 15, 2014, at 7:03 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
>
>> src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
>> Removed:
>> 6547 } else {
>> 6548 g1_policy()->note_alloc_region_limit_reached(ap);
>>
>> I haven't been able to figure out why this (adjusted for purpose =>
>> InCSetState) was removed.
>>
>> ------------------------------------------------------------------------------
>
> The purpose of this method was to set the tenuring threshold to 0 in the
> policy to avoid the code trying to continue failing to allocate in the
> survivor space. This global state has been superseeded by thread-local
> tenuring thresholds.
Thanks for the explanation.
>> ------------------------------------------------------------------------------
>>
>> src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
>> 1346 void clear() { G1BiasedMappedArray<in_cset_state_t>::clear(); }
>>
>> Why add this trivial forwarding definition, and not just use the
>> inherited definition as is?
>
> Change of visibility. The clear method in the super class is protected,
> but the clear() method in this class is public.
Oops, I missed the visibility change.
This could also be accomplished with slightly fewer characters via a
“using” declaration; I don’t see many occurrences of “using” declarations
in our code base though, so it might not enhance readability.
> I would prefer to create a separate CR for introducing an array_size()
> method.
That’s fine. I’ve added that to my todo list.
More information about the hotspot-gc-dev
mailing list