7.0 performance suggestions?

Anyone have some suggestions to get better perf out of IJ 7.0?

Sometimes my project (very big) gets cached and loads very quickly, other times it takes 5 minutes. What determines whether it's cached?

The whole thing is a bit sluggish, anyone have any suggestions/tweaks to speed it up?

I tweaked my idea.exe.vmoptions to this:
-Xms200m
-Xmx600m
-XX:MaxPermSize=240m
-ea

this helped somewhat I think...

thanks
phil

13 comments

Here are my settings which I've found to work very well!

-Xms256m
-Xmx768m
-XX:MaxPermSize=120m
-ea
-XX:UseParNewGCUseConcMarkSweepGC

I have a dual-core system with 4 gig ram. The last option helps with
dual-core I think.

It's amazing how much faster IntelliJ is on my dual-core system compared to
my single-core system.

My project has about 50 modules with a total code base of about 500,000
lines of code (JSPs included)


"phil swenson" <no_reply@jetbrains.com> wrote in message
news:28231621.1192719320046.JavaMail.itn@is.intellij.net...

Anyone have some suggestions to get better perf out of IJ 7.0?

>

Sometimes my project (very big) gets cached and loads very quickly, other
times it takes 5 minutes. What determines whether it's cached?

>

The whole thing is a bit sluggish, anyone have any suggestions/tweaks to
speed it up?

>

I tweaked my idea.exe.vmoptions to this:
-Xms200m
-Xmx600m
-XX:MaxPermSize=240m
-ea

>

this helped somewhat I think...

>

thanks
phil


0

AFAIK the caching and thus quick load of projects happens after the project has been loaded at least once in the current IDEA instance

further suggestions:
- disable virusscanner on project directory and IDEA system/config directories
- defrag above directories regularly

0

I just get this when I try to add the XX option...:

Unrecognized VM option 'UseParNewGCUseConcMarkSweepGC'
Could not create the Java virtual machine.


What am I missing?


BTJ

0

Try "-XX:UseConcMarkSweepGC -XX:UseParNewGC" instead

Johan

Bjørn T Johansen wrote:

I just get this when I try to add the XX option...:

Unrecognized VM option 'UseParNewGCUseConcMarkSweepGC'
Could not create the Java virtual machine.


What am I missing?


BTJ

0

1. Disable all plugins that you do not use. They all have initialization
methods that run at startup.

2. If you use IDEA for non Java tasks (I do alot of pure JavaScript for example)
you can disable the JDK for your project.
This gives a tremendous speed boost when loading the project.

3. Since IDEA does a lot of parsing and synchronizing of files in your project
folder, it is a very good idea to exlude directories that you do not use
often in the module. In my case I have 100s of JavaScript files that I hardly
ever use so I don't need IDEA to parse them all the time. I also don't want
the classes and methods from these files to show up in code completion etc.
So I turn them off.

/JL

Anyone have some suggestions to get better perf out of IJ 7.0?

Sometimes my project (very big) gets cached and loads very quickly,
other times it takes 5 minutes. What determines whether it's cached?

The whole thing is a bit sluggish, anyone have any suggestions/tweaks
to speed it up?

I tweaked my idea.exe.vmoptions to this:
-Xms200m
-Xmx600m
-XX:MaxPermSize=240m
-ea
this helped somewhat I think...

thanks
phil



0

I'm not sure whether this is good as it enables the Concurrent collector and the Parallel OldGen collector, guess this
doesn't work.
In general, for dual core (and probably even quad), the concurrent collector in incremetal mode should be best - I use:
JVM_ARGS="-server -Xms128m -Xmx1024m -XX:MaxPermSize=256m -XX:UseConcMarkSweepGC -XX:CMSIncrementalMode
-XX:CMSIncrementalPacing -XX:AggressiveOpts -XX:UseBiasedLocking -XX:DoEscapeAnalysis"

for JDK6 (should also work with JDK5) - it enables the concurrent collector in inc mode and various "unstable"
optimizations - works well for me.
For GC options see "http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html"
For tuning params see "http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp"

kind regards,

Messi


Johan Karlberg schrieb:

Try "-XX:UseConcMarkSweepGC -XX:UseParNewGC" instead

Johan

Bjørn T Johansen wrote:

>> I just get this when I try to add the XX option...:
>>
>> Unrecognized VM option 'UseParNewGCUseConcMarkSweepGC'
>> Could not create the Java virtual machine.
>>
>>
>> What am I missing?
>>
>>
>> BTJ

0

Oki, added those option and IDEA starts, so maybe I'll notice any difference.... Thx... :)

BTJ

0

Johan -- good tips.

Yes, I have about half of the default plugins disabled for things I don't
use.


"Johan Lund" <jl@bindows.net> wrote in message
news:79e581eb1c5f68c9e05e151e5f48@news.jetbrains.com...

1. Disable all plugins that you do not use. They all have initialization
methods that run at startup.

>

2. If you use IDEA for non Java tasks (I do alot of pure JavaScript for
example) you can disable the JDK for your project.
This gives a tremendous speed boost when loading the project.

>

3. Since IDEA does a lot of parsing and synchronizing of files in your
project folder, it is a very good idea to exlude directories that you do
not use often in the module. In my case I have 100s of JavaScript files
that I hardly ever use so I don't need IDEA to parse them all the time. I
also don't want the classes and methods from these files to show up in
code completion etc. So I turn them off.

>

/JL

>
>> Anyone have some suggestions to get better perf out of IJ 7.0?
>>
>> Sometimes my project (very big) gets cached and loads very quickly,
>> other times it takes 5 minutes. What determines whether it's cached?
>>
>> The whole thing is a bit sluggish, anyone have any suggestions/tweaks
>> to speed it up?
>>
>> I tweaked my idea.exe.vmoptions to this:
>> -Xms200m
>> -Xmx600m
>> -XX:MaxPermSize=240m
>> -ea
>> this helped somewhat I think...
>>
>> thanks
>> phil
>


0

http://java.sun.com/performance/reference/whitepapers/tuning.html

Section 4.2.6 and 4.2.7 explicitly mentions using the two options in tandem.

Johan

Messi wrote:

I'm not sure whether this is good as it enables the Concurrent collector
and the Parallel OldGen collector, guess this doesn't work.
In general, for dual core (and probably even quad), the concurrent
collector in incremetal mode should be best - I use:
JVM_ARGS="-server -Xms128m -Xmx1024m -XX:MaxPermSize=256m
-XX:UseConcMarkSweepGC -XX:CMSIncrementalMode
-XX:CMSIncrementalPacing -XX:AggressiveOpts -XX:+UseBiasedLocking
-XX:+DoEscapeAnalysis"

for JDK6 (should also work with JDK5) - it enables the concurrent
collector in inc mode and various "unstable" optimizations - works well
for me.
For GC options see
"http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html"
For tuning params see
"http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp"

kind regards,

Messi


Johan Karlberg schrieb:

>> Try "-XX:UseConcMarkSweepGC -XX:UseParNewGC" instead
>>
>> Johan
>>
>> Bjørn T Johansen wrote:
>>> I just get this when I try to add the XX option...:
>>>
>>> Unrecognized VM option 'UseParNewGCUseConcMarkSweepGC'
>>> Could not create the Java virtual machine.
>>>
>>>
>>> What am I missing?
>>>
>>>
>>> BTJ

0

Hello Johan,

I stand corrected - you're absolutely right, it's there (note that I
also mis-wrote "Parallel OldGen" instead of "Parallel NewGen").

Though I still got better results with the concurrent collector in
incremental mode on dual/quad machines - for desktop apps of course, as
the concurrent collector aims at low pauses while the parallel aims at
maximum throughput (Hope I got it right this time, but I'm sure Johan
will correct me if not - but I'd probably have to question my knowledge
on JVM-tuning then ;) ).

Johan: Did you try my settings (or similar) and compare them to yours?
If yes, how many cores?

kind regards,

Johan

Johan Karlberg wrote:

http://java.sun.com/performance/reference/whitepapers/tuning.html

Section 4.2.6 and 4.2.7 explicitly mentions using the two options in
tandem.

Johan

Messi wrote:

>> I'm not sure whether this is good as it enables the Concurrent
>> collector and the Parallel OldGen collector, guess this doesn't work.
>> In general, for dual core (and probably even quad), the concurrent
>> collector in incremetal mode should be best - I use:
>> JVM_ARGS="-server -Xms128m -Xmx1024m -XX:MaxPermSize=256m
>> -XX:UseConcMarkSweepGC -XX:CMSIncrementalMode
>> -XX:CMSIncrementalPacing -XX:AggressiveOpts -XX:+UseBiasedLocking
>> -XX:+DoEscapeAnalysis"
>>
>> for JDK6 (should also work with JDK5) - it enables the concurrent
>> collector in inc mode and various "unstable" optimizations - works
>> well for me.
>> For GC options see
>> "http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html"
>> For tuning params see
>> "http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp"
>>
>> kind regards,
>>
>> Messi
>>
>>
>> Johan Karlberg schrieb:
>>> Try "-XX:UseConcMarkSweepGC -XX:UseParNewGC" instead
>>>
>>> Johan
>>>
>>> Bjørn T Johansen wrote:
>>>> I just get this when I try to add the XX option...:
>>>>
>>>> Unrecognized VM option 'UseParNewGCUseConcMarkSweepGC'
>>>> Could not create the Java virtual machine.
>>>>
>>>>
>>>> What am I missing?
>>>>
>>>>
>>>> BTJ

0

To have a parallel GC in Idea would be really really nice.
I asked this question quite a long time ago in the forum, but the answer was that it is not reliable and should not be used...
It's a pity, because ParGC would really give a performance boost (I hope).

If it does not work for Idea, I suppose, it's a good reason so contact Sun on this and provide some input. Hopefully, by the time of next Idea release they would fix issues with ParGC, if there are any...

0

This is based on NetBeans, but I can imagine similar settings might work for IntelliJ (btw: an article like this would be great!)

http://performance.netbeans.org/reports/gc/windows/index.html

Erik

0

Please sign in to leave a comment.