I was talking to a colleague about the -serve JVM option, or rather he was talking to me about it. I realized I really knew nothing about it, nor did he. I was wondering if anyone has experiences with it, what are the advantages vs. regular client?

He was under the impression that -serve compile to native, which I'm CERTAIN is false, but didn't want to say anything before I had it confirmed.

The server VM has more optimizations and compiles more aggressively. It tends to have a slower startup time because of this, and perhaps longer pauses caused by compiling the "hot spots", but has generally better performance after it has decided to compile everything.

The client VM was designed for faster startup, followed by improved performance from compiling. The server doesn't care so much about startup time - just performance. It may also use more memory.

Well, yeah, heh. What I meant is he was under the impression that it compiles the byte code into native leaving the native code where it can be used later. Sounded like misinformation to me then, and still does after your response.