Latest EAPs still cause performance issues

Hello again,

It is my understanding that in the latest EAP of 5.0.2 that JB reverted to
1.5_04 JRE so they can avert a support nightmare that the _05 JDK version
would have caused, and that has made NO difference on my machine. In fact
I can make idea lock up other apps by simply hitting the garbage collection
button. Typing is still jittery when I edit XML and Java files, starting
an app server hangs for a few seconds in the middle of the startup while
IDEA GCs or does what ever. Scrolling down a page hangs while idea GCs.
If it's a short GC you don't really feel it but if it's long, God help you
you can't even switch to another app. (Maybe this is me not being used to
windows?) The funnier, and strangely annoying, thing is that every time
IDEA GCs and you're playing some song on iTunes, the song will skip like
you have a bad CD (IO contention???). You don't even have to wait for GC
to test this, every time you hit the trash can you can make things skip regardless
of how short a GC it is. OS X doesn't seem to have this problem. This behavior
is just not normal.

I know JB is at a loss on some of the issues and I know the claim is 'we
didn't do anything, it's the JDK', but why would 5.0 not give me this problem?
Just raising the flag again so no one says we didn't say anything :)

R


11 comments

Hello Robert,

Hello again,

It is my understanding that in the latest EAP of 5.0.2 that JB
reverted to
1.5_04 JRE so they can avert a support nightmare that the _05 JDK
version
would have caused, and that has made NO difference on my machine. In
fact
I can make idea lock up other apps by simply hitting the garbage
collection
button. Typing is still jittery when I edit XML and Java files,
starting
an app server hangs for a few seconds in the middle of the startup
while
IDEA GCs or does what ever. Scrolling down a page hangs while idea
GCs.
If it's a short GC you don't really feel it but if it's long, God
help you
you can't even switch to another app. (Maybe this is me not being
used to
windows?) The funnier, and strangely annoying, thing is that every
time IDEA GCs and you're playing some song on iTunes, the song will
skip like you have a bad CD (IO contention???). You don't even have
to wait for GC to test this, every time you hit the trash can you can
make things skip regardless of how short a GC it is. OS X doesn't
seem to have this problem. This behavior is just not normal.

I know JB is at a loss on some of the issues and I know the claim is
'we
didn't do anything, it's the JDK', but why would 5.0 not give me this
problem?
Just raising the flag again so no one says we didn't say anything :)
R


Looks like your hard drive is in PIO mode, not in the DMA mode. Sometimes
it happens due to faulty drives/cables/controllers/drivers and leads to the
described problem. Ensure that your hard disk is in the DMA mode, if you
are using Windows, you can try deleting controllers in Device Manager and
letting Windows to find and add them again. The drive may be in PIO mode
even if Windows says it's in DMA mode, changing the mode to PIO and back
to DMA may fix it (reboot may be necessary).

Also try adding the following line into idea.exe.vmoptions file in IDEA_HOME\bin
directory:
-XX:-UseThreadPriorities


--
Serge Baranov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


0

The funnier, and strangely annoying, thing
is that every time IDEA GCs and you're playing some
song on iTunes, the song will skip like you have a
bad CD (IO contention???)


Known VM bug. Many of the internal VM threads run on a very high priority, making iTunes skip music (iTunes decode thread doesn't run on realtime priority). Three solutions exist, all of them provided by Sun:

1) -XX:JavaPriority10_To_OsPriority=10 -XX:JavaPriority9_To_OsPriority=9
2) -XX:-UseThreadPriorities
3) Wait for JDK 1.5.0_06

0

Hello Serge,

I just checked and I am in Ultra DMA Mode 5, not PIO.

That said I'll deinstall and reboot just to see if it makes a difference.

R


0

Sorry that's not it. Added the thread prio stuff does nothing either.

Marcus, this is with JDK 1.5_04 not _5 I didn't think the blocking issues
had anything to do with _04.

R


0

My standard workaround for Java programs stealing CPU from other
software is running them at BelowNormal priority (task manager,
right-click idea.exe in the process table, set priority -> BelowNormal).
Of course, sometimes I forget to do this before using some
CPU-intensive feature in IDEA and then it takes me a couple of minutes
to get to the point where I can actually lower its priority...

0

Jonas Kvarnström wrote:

My standard workaround for Java programs stealing CPU from other
software is running them at BelowNormal priority (task manager,
right-click idea.exe in the process table, set priority -> BelowNormal).
Of course, sometimes I forget to do this before using some
CPU-intensive feature in IDEA and then it takes me a couple of minutes
to get to the point where I can actually lower its priority...


FYI
There is a plugin that will do this for you. It even remembers the priority you set from
from one session to the next: IdeProcessPriority by Paul Mclachlan.

0

There is a plugin that will do this for you. It even remembers the
priority you set from from one session to the next: IdeProcessPriority
by Paul Mclachlan.


I just tried it, but it causes exceptions when I try to use the Tools menu:

Original exception:
com.jniwrapper.Function.invoke(Lcom/jniwrapper/Parameter;)V
java.lang.NoSuchMethodError:
com.jniwrapper.Function.invoke(Lcom/jniwrapper/Parameter;)V
at mclachlan.SetPriority.(SetPriority.java:125) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at com.intellij.openapi.components.impl.ComponentManagerImpl.loadComponentsConfiguration(ComponentManagerImpl.java:287) at com.intellij.openapi.application.impl.ApplicationImpl.c(ApplicationImpl.java:183) at com.intellij.openapi.application.impl.ApplicationImpl.(ApplicationImpl.java:418) at com.intellij.openapi.application.ex.ApplicationManagerEx.createApplication(ApplicationManagerEx.java:6) at com.intellij.idea.IdeaApplication.]]>(IdeaApplication.java:54)
at com.intellij.idea.Main.a(Main.java:3)
at com.intellij.idea.Main.access$000(Main.java:11)
at com.intellij.idea.Main$2.proceed(Main.java:4)
at com.intellij.ide.license.impl.IdeaLicense$1.proceed(IdeaLicense.java)
at com.intellij.ide.license.policy.Proceed.check(Proceed.java:1)
at
com.intellij.ide.license.impl.LicenseAuthorizorImpl.checkPolicy(LicenseAuthorizorImpl.java:1)
at
com.intellij.ide.license.impl.LicenseAuthorizorImpl.checkPolicy(LicenseAuthorizorImpl.java:17)
at com.intellij.ide.license.impl.IdeaLicense.startUp(IdeaLicense.java:13)
at com.intellij.idea.Main.mainImpl(Main.java:17)
at com.intellij.idea.Main.start(Main.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.ide.plugins.PluginManager$5.run(PluginManager.java:7)
at java.lang.Thread.run(Thread.java:595)

0

At this point with all the digging around I've done it looks like Quicktime is to blame, not IDEA or iTunes. I can change a QT setting and make it worse, there seems to be no way to make it better.

Sorry for the bother folks.

R

0

Jonas Kvarnström wrote:
>> There is a plugin that will do this for you. It even remembers the
>> priority you set from from one session to the next: IdeProcessPriority
>> by Paul Mclachlan.


I just tried it, but it causes exceptions when I try to use the Tools menu:


Sorry, I used to use it in prior versions of IDEA, I hadn't tried it recently.

I wonder if Paul would be willing to fix it, or at least make the source code available.

0

Sorry, I don't have time to fix this right now (kind of stopped following the EAP's)

Source attached. You're welcome to do what you like with it, consider it in the public domain.

- Paul



Attachment(s):
ijLowerPriority.zip
0

Thanks for the source Paul.

I've uploaded IdeProcessPriority 1.3.1 to the plugin manager, updated
for IDEA 5.0. I also reordered the entries in the "Set IDE Process Priority"
menu to match the order you get from the Task Manager. It was just a
matter of rebuilding against the new 5.0 libraries.

Thanks,

Vince.



0

Please sign in to leave a comment.