IDEA EAP IU-95.260 Embedded YourKit PerformanceWatcher going berserk, writing many threaddump files
I have noticed something strange in IDEA EAP IU-95.260. The YourKit profiler agent is enabled since this is EAP, which is fine, but I was under the impression that it doesn't do anything unless you start cpu or memory profiling.
What I have found is that during heavy processing, often in another program running on the same machine, that IDEA starts writing a bunch of thread dumps to the IDEA system directory, e.g.
C:\Users\alex\.IntelliJIdea90\system\log\threadDumps-20100622-203641-IU-95.260\20100624-172452-148
Many multiple thread dumps are being generated in rapid-fire succession. See screenshot -- there are many with the same timestamp 5:26 PM 5:27 PM, etc.
Attached is a picture of the Disk Write I/O that this was causing . Sinc Disk I/O is the weak point in my quad core workstation, I would like to avoid this extra I/O IDEA is doing when my system is under load.
Is there a way to turn PerformanceWatcher off while still keeping ability to do cpu/memory profiler if need be?
Thanks,
-Alex
"Performance watcher"
at sun.management.ThreadImpl.$$YJP$$dumpThreads0(Native Method)
at sun.management.ThreadImpl.dumpThreads0(ThreadImpl.java)
at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:374)
at sun.reflect.GeneratedMethodAccessor43.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.diagnostic.PerformanceWatcher.a(PerformanceWatcher.java:219)
at com.intellij.diagnostic.PerformanceWatcher.e(PerformanceWatcher.java:203)
at com.intellij.diagnostic.PerformanceWatcher.c(PerformanceWatcher.java:163)
at com.intellij.diagnostic.PerformanceWatcher.access$100(PerformanceWatcher.java:42)
at com.intellij.diagnostic.PerformanceWatcher$2.run(PerformanceWatcher.java:106)
at java.lang.Thread.run(Thread.java:619)
请先登录再写评论。
I checked my idea.exe.vmoptions file, and the settings for the yjpagent are different from the default.
(I copy over the default each time and never bothered to update the yjpagent line).
It shouldn't matter as yourkit doens't start profiling at startup unless you put "sampling" or "tracking" etc. in the startup parameters.
My idea.exe.vmoptions
OOTB default idea.exe.vmoptions IU-95.260
Hello Alex,
The thread dumps are not written by YourKit, but rather by IntelliJ IDEA's
built-in profiling logic. They are written once a second if the event dispatch
thread is unresponsive for more than 5 seconds. To turn it off, add the system
property -Dperformance.watcher.threshold=0.
--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"
Dmitry,
Thanks for the tip. I will add that setting in my ide.exe.vmoptions. In my case, there is no shortage of cpu% and what is causing delays is the hard drive. I have the OS/pagefile + IDEA's caches plus a HyperV Windows VM all running on the same hard disk, and sometimes there's a freezeup usually when I am compiling the project. [I really need to add some mor drives in this system!] Some running operations in IDEA are probably delayed when this happens, and that's when PerformanceWatcher starts taking thread dumps. I'm still unclear why it is taking dozens per second, though.
Thanks,
-Alex