RFR (S): Avoid scanning primitive arrays
Roman Kennke
rkennke at redhat.com
Wed Feb 8 13:51:06 UTC 2017
Am Mittwoch, den 08.02.2017, 14:36 +0100 schrieb Aleksey Shipilev:
> 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.
Ok.
> > 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.
Absolutely!
Patch go! ;-)
Roman
More information about the shenandoah-dev
mailing list