Server or client JVM for your (Java) IDE ?

I’ve noticed, that some nice IDEs are Java applications and hence need a (recent) JRE/JDK in order to run.
In this forum you can read many positive articles about the benefits of the server JVM.

However for example Eclipse just needs the JRE (which hasn’t got a server VM). JBuilder includes the JDK but uses the client VM of it.
Why is this so?

Since I’m using JBuilder: Does it make sense to change its jdk.config so that it uses the server VM?
Naturally I’ve tried it but don’t see any major difference. As usual a visual judgment is no “benchmark”. Maybe some other users know more about this topic.

Eclipse actually requires the JDK.

I use the server VM with eclipse. Slow to start up but as I leave my machine on or hibernated for weeks running, it’s nearly always in a state of optimization.

Cas :slight_smile:

[quote]Eclipse actually requires the JDK.

I use the server VM with eclipse. Slow to start up but as I leave my machine on or hibernated for weeks running, it’s nearly always in a state of optimization.
[/quote]
According to the Eclipse FAQ it doesn’t actually need the Java SDK, just the Java JRE.
http://www.eclipse.org/eclipse/faq/eclipse-faq.html#users_3

[quote]You must have a Java Runtime Environment (JRE) installed on your computer. Eclipse requires version 1.3 or 1.4 of a Java 2 Standard Edition JRE.
[/quote]
However, since I don’t use Eclipse, this could be wrong and you could be right. :wink:

I just listed Eclipse because it looked to me as if it would just need the JRE and hence use the client JVM, like JBuilder does.

I still can’t see why JBuilder (and Eclipse, in case its FAQ is right) uses the client JVM by default…

It uses the system default VM.
Actually you’re right, Eclipse doesn’t need the JDK to run, but if you don’t have the JDK, you can’t see any of the Java source code in the debugger etc. and nor do you have the various other JDK tools like javadoc, rmic, etc. which makes any serious development a little tricky.

Cas :slight_smile:

The same question arises with the smart JEdit: I start it by clicking its JAR file and so the JRE’s (client) VM is being used. I changed it so that JEdit uses the JDK’s server VM.

Still I’d be interested what VM experts suggest… Are big GUIed application like JEdit or an IDE typical server (VM) applications or would the client VM be better?

Since I can’t figure out any disadvantages at the moment (startup time isn’t an issue) by using the server VM I think I’ll use it.

Actually now I’m using JDK1.5 I’ve started using the client VM for my IDE, mainly because it’s disk I/O bound rather than CPU bound on my 2GHz laptop and also because when I launch my apps inside the IDE using the 1.5 JRE, I get that lovely shared classes thing going on and it saves a load of startup time and memory! Or am I just imagining it?

Cas :slight_smile:

Cas: try java -server -Xdump (IIRC) and you might find that class sharing work fine with -server too :wink:

Ah, cool! I was under the impression from the docs it wasn’t in the server VM.

Having said that… all the progs I’m running from my IDE get stopped and started so much they’re much better off being in the client VM anyway.

Cas :slight_smile: