RFR (S): Avoid scanning primitive arrays

Aleksey Shipilev shade at redhat.com
Wed Feb 8 13:36:47 UTC 2017


On 02/08/2017 02:27 PM, Roman Kennke wrote:
> Couldn't we also avoid pushing such arrays to the workqueue to begin
> with? Not sure if that's possible though (livedata counting, etc).

I prefer to still push them, because the mark prefetching works by putting the
FIFO buffer before the queue. Counting liveness upfront would disable
oopDesc::layout_helper prefetching for primitive arrays.

> As already discussed offline, I'd love to see this taken further and
> handle non-arrays without oop refs too. It should be possible at the
> allocation site to figure out whether an object has oop refs or not.
> This should be possible to encode in the layout-helper. Then we can
> determine whether to scan or not (and push to the work queue, etc) an
> object at all. According to your tests, this makes up ~40% of all
> objects, so should be significant.

Yes. That is much more intrusive than this patch, so should be explored separately.

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list