Request for review (S): 7068625 Testing 8 bytes of card table entries at a time speeds up card-scanning

Alexey Ragozin alexey.ragozin at
Tue Feb 21 08:03:50 UTC 2012


I would like few volunteers to review changes for

Change summary
For large heaps (I was focusing on 8GiB and above) it is common to have
long continuous ranges of clean cards.
Patch is introducing a short path for skipping ranges of clean cards using
word aligned memory access instead of byte aligned.

Patch affects serial and CMS collectors. For CMS collector stride size
should be increase to see any performance gains (I was using

For testing I was mainly using synthetic benchmark randomly modifying hash
tables in heap, thus uniformly touching cards across heaps.
Average duration of young GC pause were used as KPI.
More details about testing can be found at
Though article is referring jdk6, my resent tests with trunk jdk7 show no
I was also tested patch with real application (Oracle Coherence storage
With 16GiB of heap and CMS/ParNew GC, enabling patch have shortened GC
pauses roughly in 2 times.

Source code of benchmark used in test are available at
Main class YoungGCPauseBenchmark

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the hotspot-gc-dev mailing list