RFR (M): 8027476: Improve performance of Stringtable unlink, 8027455: Improve symbol table scan times during gc pauses (original) (raw)
Bengt Rutisson bengt.rutisson at oracle.com
Mon Jan 13 12:01:20 UTC 2014
- Previous message (by thread): RFR (M): 8027476: Improve performance of Stringtable unlink, 8027455: Improve symbol table scan times during gc pauses
- Next message (by thread): RFR(XXS): 8027454: Do not traverse string table during G1 remark when treating them as strong roots during initial mark
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Thomas,
On 1/13/14 12:32 PM, Thomas Schatzl wrote:
Hi Bengt,
On Mon, 2014-01-13 at 09:11 +0100, Bengt Rutisson wrote: Hi Thomas,
Looks good. Great work! Thanks for the review. A couple of minor things. I'll leave it up to you if you want to do any changes. I'm fine with the patch as it is.
G1TraceStringSymbolTableScrubbing is now experiemental. It looks like it is more common to have Trace flags be diagnostic. Do you mind changing to diagnostic? I would soon like to change this to more detailed output like we do for update RS in the young GC pause. I thought that keeping stuff experimental helps to be able to remove the flag later :)
OK. I see :) Leave it as experimental.
g1CollectedHeap.cpp
5248 StringTable::unlink(isalive, &stringsprocessed, &stringsremoved); 5249 stringsprocessed = stringsprocessed; 5250 stringsremoved = stringsremoved; Maybe the single threaded case could do? StringTable::unlink(isalive, &stringsprocessed, &stringsremoved); Then these local variables could move in inside the G1CollectedHeap::useparallelgcthreads() check. 5230 sizet stringsprocessed = 0; 5231 sizet stringsremoved = 0; 5232 sizet symbolsprocessed = 0; 5233 sizet symbolsremoved = 0; That unfortunately does not work, because we need jlong type variables for the Atomic operations.
Right. Missed that.
However, while looking at Mikael's suggestions I found that the use of sizet in the change does not give any advantage (as the main limitation is the underlying hashmap that only allows int typed sizes) except for too many casts.
Good! :)
I changed this in http://cr.openjdk.java.net/~tschatzl/8027454/webrev.1/ to use int's for the sizes.
Looks good. Thanks for fixing these things!
Bengt
Thanks, Thomas
- Previous message (by thread): RFR (M): 8027476: Improve performance of Stringtable unlink, 8027455: Improve symbol table scan times during gc pauses
- Next message (by thread): RFR(XXS): 8027454: Do not traverse string table during G1 remark when treating them as strong roots during initial mark
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]