6423256: marking stacks should use a chunked data structure
Keith McGuigan
Keith.McGuigan at Sun.COM
Wed Nov 5 09:08:48 PST 2008
Hi Scott -
I'm forwarding this to the hotspot-gc-dev mailing list. If anyone is
working on it, they'll be on that list (maybe this one too, but just in
case).
--
- Keith
Scott Marlow wrote:
> Is anyone working on this bug yet? From the bug report
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6423256, it sounds
> like someone started the work already. I would like to help with the
> issue (either testing a proposed fix or submitting one).
>
> The bug report contains this text:
>
> "
> The marking stack used by MarkSweep currently uses a GrowableArray<oop>.
> That's overkill, since we only use the marking stack as a stack. In
> contrast, GrowableArray implements an array, so when it expands, it
> reallocs and copies the whole array to a new, larger, piece of
> contiguous memory. Since the marking stack is often large, this often
> requires a large contiguous chunk of memory, which can be difficult to
> acquire. Since GrowableArray grows by doubling, on average 25% of the
> array will be empty. When the marking stack is large, this can be a
> substantial waste of space.
>
> Instead, the stack could be implemented as a chained series of small
> regions. This could allow us to balance the storage for the chain
> pointers against the increment of growth, to use an appropriate amount
> of space in modest chunks.
> Posted Date : 2006-05-08 23:47:21.0
> "
>
>
> Scott
>
More information about the hotspot-runtime-dev
mailing list