Christian Catchpole wrote: > I always thought it weird that java was originally targetted for > embedded. These don't typically use compacting collectors - combine > this with limited memory and you are asking for fragmentation and out > of memory conditions based on the dyamics of the runtime conditions. > Nothing you can properly test for. > Even you seem to have enough avail ram. > This has been a problem with older IBM technology, say 1.4.2 and you will get fragmentation issues that are hard to test for and will cause the JVM to fail on alloction even the standard IBM collections do compact. This, however, has not been a problem typically found in other JVM implentations. It is a problem of *how* IBM was compacting.
That said, CMS does not compact unless it is unable to recover a certain threshold of heap space. This is known as CMS failure. The compaction will solve the fragmentation issue and since there aren't any (that I know of) pinned objects (unmovable in IBMs heap implementation), you will only run out of heap in expected ways. However, compaction isn't cheap as one of the dominate cost in any GC is copying data. Also, compaction can't be concurrent as this will lead to race conditions between the app and the collector. The race conditions are solvable concurrently but performance will suffer because of it. It's currently cheaper to pause application threads. That balance is changing in G1. Regards, Kirk > On Jan 2, 7:14 am, kirk <kirk.pepperd...@gmail.com> wrote: > >>> NIO virtual memory mapped is outside of the VM memory. >>> >> Do you mean Java heap? 'cos, mmapeed memory is part of the process >> space though not Java heap if that is what you meant. >> >> Regards, >> Kirk >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to javaposse@googlegroups.com To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---