-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.

Reply via email to