RFR(S): 8011724: G1: Stack allocate instances of HeapRegionRemSetIterator

Bengt Rutisson bengt.rutisson at oracle.com
Wed Apr 10 08:42:26 UTC 2013


John, looks good!

Bengt

On 4/9/13 7:13 PM, John Cuthbertson wrote:
> Hi Bengt,
>
> Thanks for looking over the changes. As said - I was adding the 
> instrumentation code to the iterator and this looked odd.
>
> On 4/8/2013 11:05 PM, Bengt Rutisson wrote:
>>
>> Hi John,
>>
>> Thanks for doing this cleanup! It really looks much better!
>
> I expect as I look at the root scanning and RSet updating code more 
> minor cleanups/refactoring will become apparent.
>
>>
>> Changes look good.
>>
>> One minor request if you feel like it:
>>
>> Since you anyway updated a comment in the class 
>> HeapRegionRemSetIterator. Could you also update (or just remove) this 
>> comment?
>>
>>   // If true we're iterating over the coarse table; if false the fine
>>   // table.
>>   enum IterState {
>>     Sparse,
>>     Fine,
>>     Coarse
>>   };
>
> Sure. No problem. How about:
>
> "Indicates the granularity of table that we're currently iterating over"?
>
>>
>> Also, have you measured any performance impact of this? I'm not 
>> suggesting that you should put any extra work into doing that. Just, 
>> in case you have some numbers, have you seen any improvements? I 
>> could imagine that there was a fair amount of false sharing going on 
>> with the old array of iterators, so I'm guess that we might see some 
>> perf improvements with this change. Just curious.
>
> I only did a cursory (i.e. untuned) measurement using SPECjvm98 (5x 
> before and after) and didn't see any meaningful difference. The 
> variance between the results was slightly smaller but I wouldn't draw 
> any conclusion from that. This was on a system with 4 GC threads.
>
> Thanks again,
>
> JohnC




More information about the hotspot-gc-dev mailing list