My impression was that a fixed size of the heap was designed to keep the program from using all the ram on the machine. Personally, I'd rather have a single program crash than have an entire machine come to it's knees (I no longer have any machines running a single application unless they are running some low level embedded operation, and that's a completely different beast).
I will admit, 64M is a little on the low side for modern desktop applications (this from a guy with 8 gigs or ram on his workstation, so take that statement with a grain of salt). But 64M is actually on the large side some embedded systems. I'm going to guess that 64M was decided upon as a good place to start; I imagine it would cover most usual programs. Configuring the maximum heap size is also fairly trivial (the -Xms and -Xmx flags, I believe). And having a ballpark idea how much ram your program should use should be a basic benchmarking test before you put something into production (I've been guilty of missing that test before and won't make that mistake again). All this being said, I have been burnt by this with tomcat before when we forgot to configure this correctly and ended up with some very strange behaviors (suddenly some of our applications could no longer find libraries that tomcat was dropping out of the heap; I don't know the exact details as I was on vacation that week and this is all hearsay). In my opinion, the fixed max heap size is a required annoyance. Unless I were better able to manually manage memory usage in java, I'm disinclined to allow program's ram usage to grow unchecked. -Matt On Wed, Dec 31, 2008 at 10:54 AM, phil.swen...@gmail.com <phil.swen...@gmail.com> wrote: > > I've never understood why sun chose to have a "max heap size" setting > and default it to 64 megs. To figure out what your max heap size > should be you pretty much have to use trial and error. This makes > java inherently unstable. I can't count the # of times I've had > processes crash with an OutOfMemoryException because the heap size is > set either to the default 64 meg or too low. > > Why not do what every other runtime does and just allocate memory as > needed? And what exactly does the max heap size setting do anyway? > > > -- Calvin: Know what I pray for? Hobbes: What? Calvin: The strength to change what I can, the inability to accept what I can't, and the incapacity to tell the difference. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---