Re: Ranting about JVM's default memory limits...
Tom Anderson wrote:
The normal situation looks more like this:
|
ABCDEFGHIJKLMNOPQRSTUV|...w..x.....y..z....a.....bc
old generation | nursery
The only sane thing to do is to compact the nursery.:
|
ABCDEFGHIJKLMNOPQRSTUVwxyzabc|.....................
old generation | nursery
This is how a 'normal' generational collector does it - before:
|
ABCDEFGHIJKLMNOPQRSTUV..........|...w..x.....y..z....a.....bc
old generation | nursery
And after:
|
ABCDEFGHIJKLMNOPQRSTUVwxyzabc...|............................
old generation | nursery
Sun's GC has two nurseries and a tenured space. The boundaries don't
necessarily change. Compaction occurs between nursery spaces several times
before an object moves to the tenured space.
letter live
lower-case still young
upper-case old
# unreachable
.. empty
tenured nursery0 nursery1
ABCDE...........................||#F#w####y######g|................
ABCDEF..........................||................|wyG.............
It is a Bad Thing for tenured objects to refer to young ones.
--
Lew