-server is the default on "server" class machines. But as you point out, even "non-server" machines are pretty powerful. The server defaults are appropriate so I think it is right to explicitly select it, regardless.
I agree it's hard to figure out the right GC settings. That is all the more reason to provide a good starting point. For example the young generation is by default about 25% of the heap. In the CF code, little memory is needed for young, transient objects. If you use the default settings, you will waste 25% of the heap then. When your heap is even 2GB, that's huge. I can't imagine not telling people to set NewRatio high. (Whether it's 8, or 10, sure, up to your testing.) I think writing tight code and configuring the JVM are separate things and both are important. We can write the best code ever but the JVM behavior will still be vital to performance. It's not a tradeoff; we need to do well on both fronts. (Do you really think some implementations are twice as slow as they need be? can't tell if that's good or bad news. ) On Fri, Sep 4, 2009 at 10:47 PM, Grant Ingersoll<gsing...@apache.org> wrote: > Of course, but it often becomes a black hole figuring out how all those > parameters work and which ones help and hurt. Not to say you shouldn't do > it and that it isn't welcome, just that it is often hard to give general > recs for those things given all the platforms that Java runs on. Instead, > I'd suggest we could give resources to people on how they can determine > them.