I've always wondered about this, before I encountered OOM, I just assumed that the JVM would keep asking for memory until the underlying OS refused to give it any more. Then, when I found the -Xmx switch, I assumed that there was an option to specify "as much as you can get from the OS" but again, no.
I imagine the people working on the JVM are a little smarter than the average bear so there's probably good, non-trivial reasons for requiring -Xmx but I don't know what they are. Can anyone give some pointers on this? Also, what does the .Net CLR do? Does it impose any constraints on memory allocation? Does it suffer from poorer garbage collection or allocation performance at the expense of its strategy? Thanks, Phil On Aug 12, 2:01 pm, Jess Holle <[email protected]> wrote: > It's just like the pre-OS-X Mac OS in this regard :-) > > Though I can understand why it is hard to avoid -Xmx for various GC > algorithms whereas the pre-OS-X Mac OS really had no excuse. > > On 8/12/2011 7:48 AM, phil swenson wrote: > > > > > > > > >http://eblog.chrononsystems.com/xmx-is-hurting-the-usability-of-java > > > I've been saying this since I first discovered the terrible > > OutOfMemoryException in 1999. Xmx makes java inherently unstable. > > You can't rely on your app to stay up until you find the magic Xmx > > setting. WTF!? > > > Dick/Carl/Tor/Joe - when you talk to Mark Reinnhold, can you bring this up? -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
