Eden space is not empty after a Full GC?
Jon Masamitsu
Jon.Masamitsu at Sun.COM
Tue May 15 14:04:54 UTC 2007
Response below.
Neo Jia wrote:
> On 5/14/07, Jon Masamitsu <Jon.Masamitsu at sun.com> wrote:
>
>> Yes, it's almost random in terms of which objects get
>> left in the young generation. It is a sliding compaction
>> so objects at the higher end of the generation are
>> more likely to be left behind.
>>
>> Leaving objects in the young generation probably
>> means that the following collection will also have to
>> be a full collection. It's generally better to have some
>> room in the old (mature) generation so that minor
>> collections can be done so I would say it would be
>> better to have additional space in the old generations.
>
>
> Jon,
>
> But if all the reserved space for mature space are committed, is there
> any way to "borrow" memory from other regions?
>
>
With the UseSerialGC there is not currently a way to get the space from
one generation to another. I meant to say that a user who is in this
situation
could resize the generations to move more space into the mature (old)
generation. The UseParallelGC collector has an option UseAdaptiveGCBoundary
that does allow the boundary between the young generation and the old
generation to move (allowing the borrowing). That feature is incomplete in
that we have not developed a good policy to decide when the boundary should
be moved and by how much. The simple policy currently implemented
works well sometimes but other times it causes very poor performance.
More information about the hotspot-gc-dev
mailing list