-
-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Excessive CPU use #416
Comments
Thread dump``` "AWT-EventQueue-0" prio=0 tid=0x0 nid=0x0 runnable java.lang.Thread.State: RUNNABLE
"BaseDataReader: output stream of fsnotifier-wsl" prio=0 tid=0x0 nid=0x0 runnable "BaseDataReader: output stream of fsnotifier.exe" prio=0 tid=0x0 nid=0x0 runnable "BaseDataReader: error stream of fsnotifier-wsl" prio=0 tid=0x0 nid=0x0 runnable "BaseDataReader: error stream of fsnotifier.exe" prio=0 tid=0x0 nid=0x0 runnable "ApplicationImpl pooled thread 3023" prio=0 tid=0x0 nid=0x0 runnable
"fsnotifier-wsl" prio=0 tid=0x0 nid=0x0 runnable "fsnotifier.exe" prio=0 tid=0x0 nid=0x0 runnable "Netty Builtin Server 1" prio=0 tid=0x0 nid=0x0 runnable "Netty Builtin Server 2" prio=0 tid=0x0 nid=0x0 runnable "External Command Listener" prio=0 tid=0x0 nid=0x0 runnable "HttpClient-1-SelectorManager" prio=0 tid=0x0 nid=0x0 runnable "AWT-Windows" prio=0 tid=0x0 nid=0x0 runnable "Reference Handler" prio=0 tid=0x0 nid=0x0 runnable
"Attach Listener" prio=0 tid=0x0 nid=0x0 runnable "Notification Thread" prio=0 tid=0x0 nid=0x0 runnable "Signal Dispatcher" prio=0 tid=0x0 nid=0x0 runnable "WinLauncher external command processing thread" prio=0 tid=0x0 nid=0x0 runnable "JobScheduler FJ pool 10/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 20/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 24/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 26/11" prio=0 tid=0x0 nid=0x0 waiting on condition "ApplicationImpl pooled thread 3007" prio=0 tid=0x0 nid=0x0 waiting on condition "ApplicationImpl pooled thread 3016" prio=0 tid=0x0 nid=0x0 waiting on condition "ApplicationImpl pooled thread 3019" prio=0 tid=0x0 nid=0x0 waiting on condition "ApplicationImpl pooled thread 3022" prio=0 tid=0x0 nid=0x0 waiting on condition "ApplicationImpl pooled thread 3024" prio=0 tid=0x0 nid=0x0 waiting on condition "ApplicationImpl pooled thread 3025" prio=0 tid=0x0 nid=0x0 waiting on condition "I/O pool 2036" prio=0 tid=0x0 nid=0x0 waiting on condition "I/O pool 2037" prio=0 tid=0x0 nid=0x0 waiting on condition "StatisticsFileEventLogger" prio=0 tid=0x0 nid=0x0 waiting on condition "Swing-Shell" prio=0 tid=0x0 nid=0x0 waiting on condition "Windows Shell integration" prio=0 tid=0x0 nid=0x0 waiting on condition "PeriodicMetricReader-1" prio=0 tid=0x0 nid=0x0 waiting on condition "Coroutines Debugger Cleaner" prio=0 tid=0x0 nid=0x0 waiting on condition "DefaultDispatcher-worker-1" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-10" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-11" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-12" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-2" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-3" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-4" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-5" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-6" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-7" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-8" prio=0 tid=0x0 nid=0x0 waiting on condition
"DefaultDispatcher-worker-9" prio=0 tid=0x0 nid=0x0 waiting on condition
"main" prio=0 tid=0x0 nid=0x0 waiting on condition "Common-Cleaner" prio=0 tid=0x0 nid=0x0 waiting on condition "Java2D Disposer" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 0/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 1/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 12/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 13/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 14/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 15/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 16/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 17/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 18/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 19/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 2/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 21/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 22/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 23/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 27/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 28/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 29/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 3/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 30/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 31/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 33/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 34/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 35/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 36/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 37/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 38/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 4/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 40/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 41/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 5/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 6/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 7/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 8/11" prio=0 tid=0x0 nid=0x0 waiting on condition "JobScheduler FJ pool 9/11" prio=0 tid=0x0 nid=0x0 waiting on condition "Periodic tasks thread" prio=0 tid=0x0 nid=0x0 waiting on condition "TimerQueue" prio=0 tid=0x0 nid=0x0 waiting on condition "AWT-Shutdown" prio=0 tid=0x0 nid=0x0 waiting on condition "Batik CleanerThread" prio=0 tid=0x0 nid=0x0 waiting on condition "Finalizer" prio=0 tid=0x0 nid=0x0 waiting on condition "JNA Cleaner" prio=0 tid=0x0 nid=0x0 waiting on condition "kotlinx.coroutines.DefaultExecutor" prio=0 tid=0x0 nid=0x0 waiting on condition "BC Entropy Daemon" prio=0 tid=0x0 nid=0x0 waiting on condition
<COROUTINE DUMP REMOVED - SIZE LIMITATION>
|
thank for the report, a file in particular ? |
Try opening However, I'm not seeing quite the same level of CPU use this morning--I've not done any real work in IJ yet today after hibernating overnight. 30-50 percent at times. Clicking in the panels seems to push up the level. I would guess the plugin code is run too often and (obviously) in multiple threads. Hope you're able to see the problem. I've also gotten 9 exceptions that appear to be similar to this one:
|
Ah, if I now open an editor for It may be that there are two performance issues: the 100% case and the 30-50% case. |
can it be a wsl problem ? I have spikes when opening the files, but they don’t last long. what if you open these files from a pure windows env (local file system) ? |
Hmm, I didn't see the problem in a quick experiment with the same file. Perhaps it will go away when I upgrade to Windows 11--I've been putting that off. |
I found that I am doing unneeded operations. I have a simpler implementation. However, in my env, opening |
I may have identified a potential problematic code in the gutter navigation |
@jfehrle Hi, can you please test this version of plugin and tell me if you still have CPU usage problems ? |
Based on a few minutes experimentation, that seems to fix the problem. When I open the files mentioned above (e.g. stm.ml, tactics.ml, heap.ml) I see a brief jump in CPU use, which then drops to low levels. Thanks for the fix! |
Cool. It's not a fix yet because there might be some regression with gutter navigation. |
Fixed in 0.115 |
plugin version: 0.113-2023.1
Description
I'm seeing excessive CPU when I have large(?) .ml or .mli files visible (i.e. showing the full edit panel, not just having a tab open). I have a 6 core, 12 thread system. If I have 2 files visible (using split screen), I can easily see 50% CPU utilization by IntelliJ and sometimes 90+%. If I switch to edit panels that don't have those suffixes, CPU use drops quickly and stays low.
Having at least one of the files large (> 5000 lines) seems to make it more likely that I see the problem, but I can also see it when both files are only a couple hundred lines.
I could try further experiments if you like.
I first noticed this behavior maybe a month ago, perhaps when I updated IJ and the plugin.
The text was updated successfully, but these errors were encountered: