idea.exe.vmoptions

I am trying to tweak the idea.exe.vmoptions files. I think I can increase
the perfomance of idea.

I saw the option:

-ea

Which is enable assertions. Does this not affect the performance in Idea.
I think it does. Can we disable it?

Also, my file has -XX:MaxPermSize=128m. Why do we need this set? Can this
be lowered? Maybe this is fine, but I though I ask.


7 comments
Comment actions Permalink

Here is an article from their blog that has a couple of tidbits of information:

http://blogs.jetbrains.com/idea/2006/04/configuring-intellij-idea-vm-options/

Here is my idea.exe.vmoptions:

-Xms64m
-Xmx256m
-XX:MaxPermSize=92m
-ea
-server
-Dsun.awt.keepWorkingSetOnMinimize=true

The -server option really seems to make a noticeable difference. These settings have made it so I rarely have to wait on IntelliJ to GC anymore.

The sun.awt.keepWorkingSetOnMinimize keeps IntelliJ from taking a long time to become responsive if you, minimize IntelliJ, leave your computer for a bit and then come back and maximize it. It only works with Java 1.5 (which IntelliJ 5.x runs with) and is a Windows bug workaround from Sun (used to have the link to the Sun bug report but don't seem to have it any more).

0
Comment actions Permalink

Thanks for info. Here are my settings:

-Xms400m
-Xmx800m
-XX:MaxPermSize=128m
-XX:NewRatio=4
-Xss128k
-Dsun.awt.keepWorkingSetOnMinimize=true


I added Dsun.awt.keepWorkingSetOnMinimize and will test now.

I find that giving idea 400M is better because I tend to use that much.

I took away the -ea because I don't think I need assertions. I really don't
get any violations from idea.

I'm curious about the -server switch. Is there any doc on it?

Here is an article from their blog that has a couple of tidbits of
information:

http://blogs.jetbrains.com/idea/2006/04/configuring-intellij-idea-vm-o
ptions/

Here is my idea.exe.vmoptions:

-Xms64m
-Xmx256m
-XX:MaxPermSize=92m
-ea
-server
-Dsun.awt.keepWorkingSetOnMinimize=true
The -server option really seems to make a noticeable difference. These
settings have made it so I rarely have to wait on IntelliJ to GC
anymore.

The sun.awt.keepWorkingSetOnMinimize keeps IntelliJ from taking a long
time to become responsive if you, minimize IntelliJ, leave your
computer for a bit and then come back and maximize it. It only works
with Java 1.5 (which IntelliJ 5.x runs with) and is a Windows bug
workaround from Sun (used to have the link to the Sun bug report but
don't seem to have it any more).



0
Comment actions Permalink

The -server option is usually used for long running server side processes. It is supposed to be a little more optimized for that use case. I think mostly it has a different GC algorithm.

Here is the Sun bug report for the -Dsun.awt.keepWorkingSetOnMinimize=true option
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5043070

From:

http://java.sun.com/j2se/1.4.2/docs/guide/vm/index.html


Java HotSpot Server VM
The Java HotSpot Server VM is designed for maximum program execution speed for applications running in a server environment. The Java HotSpot Server VM is invoked by using the -server command-line option when launching an application...

0
Comment actions Permalink

Michael Parmeley wrote:

The -server option is usually used for long running server side
processes. It is supposed to be a little more optimized for that use
case. I think mostly it has a different GC algorithm.


No, server mode is hugely optimized, and is often 50-200% faster in
benchmarks. However, the tradeoff is more memory usage, slower startup,
slower classloading.

You can read more about performance at http://kano.net/javabench/data.
You should look at server VM vs client VM (the default).

0
Comment actions Permalink

Can't I just increase the memory on my own instead of relying on the -server
switch?

Michael Parmeley wrote:

>> The -server option is usually used for long running server side
>> processes. It is supposed to be a little more optimized for that use
>> case. I think mostly it has a different GC algorithm.
>>

No, server mode is hugely optimized, and is often 50-200% faster in
benchmarks. However, the tradeoff is more memory usage, slower
startup, slower classloading.

You can read more about performance at http://kano.net/javabench/data.
You should look at server VM vs client VM (the default).



0
Comment actions Permalink

The -server switch does not affect your heap size, they are independent
of each other.

Rodrigo Gomez wrote:

Can't I just increase the memory on my own instead of relying on the
-server switch?

>> Michael Parmeley wrote:
>>
>>> The -server option is usually used for long running server side
>>> processes. It is supposed to be a little more optimized for that use
>>> case. I think mostly it has a different GC algorithm.
>>>
>> No, server mode is hugely optimized, and is often 50-200% faster in
>> benchmarks. However, the tradeoff is more memory usage, slower
>> startup, slower classloading.
>>
>> You can read more about performance at http://kano.net/javabench/data.
>> You should look at server VM vs client VM (the default).
>>


0
Comment actions Permalink

Thanks for this piece of info.

The -server switch does not affect your heap size, they are
independent of each other.

Rodrigo Gomez wrote:

>> Can't I just increase the memory on my own instead of relying on the
>> -server switch?
>>
>>> Michael Parmeley wrote:
>>>
>>>> The -server option is usually used for long running server side
>>>> processes. It is supposed to be a little more optimized for that
>>>> use case. I think mostly it has a different GC algorithm.
>>>>
>>> No, server mode is hugely optimized, and is often 50-200% faster in
>>> benchmarks. However, the tradeoff is more memory usage, slower
>>> startup, slower classloading.
>>>
>>> You can read more about performance at
>>> http://kano.net/javabench/data. You should look at server VM vs
>>> client VM (the default).
>>>


0

Please sign in to leave a comment.