JVM Options? Follow
Prior to jdk update 20, it was recommned (by Randall I think) to use -XX:-ReduceInitialCardMarks. I've just removed that as I'm using build 20 (so far so good).
But has anybody found any other jvm options that work well for idea+scala?
My options are quite simple right now:
-Xms2048m
-Xmx2048m
-XX:MaxPermSize=512m
-ea
And all of that 2048m is indeed used. Even for compiling a single file.
Please sign in to leave a comment.
use jdk7
it's a LOT faster than jdk6, almost twice as fast at what i'm doing (many array operations)
oops, you meant for the plugin itself? i run idea at 500mb and that's enough, no special options. java uses as much memory as you provide, it doesn't mean it needs 4 gig if it uses 4 gig
What JDK7 build do you use?
As for memory usage, I'm going by Idea's memory usage indicator which shows how much of the -Xms is actually being used.
right now no. 94
The JVM won't garbage collect the old generation until it's full, so it doesn't mean much to say that all of 2048M is used. Perhaps you could increase the ratio of the young generation so that not so many short-lived objects are promoted to the old-generation.
I use about 700M heap, 250M permgen and, since upgrading to a MacBook Pro with Snow Leopard, -XX:-ReduceInitialCardMarks.
Since I run with a 64-bit JVM, I added -XX:+UseCompressedOops as suggested here:
http://www.jetbrains.net/devnet/docs/DOC-192
I installed JDK 7 1.7.0 EA (#95) and when I use it to launch IDEA 9.0.2 it tells me that it requires 1.5 or 1.6.
How are you convincing IDEA to run on 1.7?
Randall Schulz
i didn't, that's what i meant by "oops". i run my scala app with jdk7
I see.
I was also curious about your performance observations. Are there any systematic studies of performance improvements in JDK 7?
RRS
this is what i found:
http://www.taranfx.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7
http://java.sun.com/javase/7/docs/technotes/guides/vm/performance-enhancements-7.html
it seems the java7 vm can eliminate a lot of array bounds checks and some object creation (something about "scalar replaceable objects", not sure what that is exactly, but it helps)