I only have 7 tabs open in one lister window. What could be causing such high CPU usage?
I have two different torrent clients (qBittorrent and Vuze) downloading in the background to a local NAS.
Could that have anything to do with the high CPU usage? Is DO scanning something in the background?
The high CPU usage happens even when I'm not using Directory Opus.
I'm using Windows 10 Pro x64 (16GB RAM) and the latest stable version of Directory Opus.
I started Vuze back up and monitored the CPU usage, and it didn't go up for Opus at all. Vuze was downloading in the background and everything was fine.
As soon as I double-clicked on the NAS drive, the CPU usage for Opus shot up to 50% and it stayed between 30% and 50% when browsing the NAS files and folders. The same thing also happens for local drives such as drive C.
Seems like Opus is doing something in the background when browsing files and folders.
My guess is that when the torrents are downloading to that NAS, the NAS device (presumably not running Windows) is sending a flood of file change notifications, which Opus is using a lot of CPU and memory to keep up with.
Are you using the latest version of Opus? If you're on an old version, try updating first, as there are some improvements to how this kind of situation is handled.
If the latest version is installed, these settings may also help:
Preferences / Folder Tabs / Options / Process file changes in background tabs - Turn this off and there will be less overhead from having the Y:\ tab in the background. (You'll still get the overhead when it is active, however.) When returning to the tab, it will be reloaded.
Preferences / File Operations / Options / Detect external file changes on network drives - Turn this off and there should be very little overhead from then on, but the downside is Opus will not notice changes made on network drives.
Preferences / Miscellaneous / Advanced [Troubleshooting]: notify_max_time and notify_min_items can tweak how often Opus processes the queue, but probably won't help here. They are more to help if the UI is not staying responsive.
In the same place, make sure notify_debug and shellchange_debug are both False, as having them turned on can increase CPU usage when processing changes. (They should only be on when debugging change notification issues, but it's easy to forget and leave them on by accident.)
You might also want to look at the config options or support forum for the NAS in question to see if it has any options to control how often it sends change notifications, or to make it not send notifications about the temp folders used by the torrent client.
Do you mean the window is really minimized (as in open, on the taskbar, still showing the folder, but minimised via the __ button), or that no windows are open?
Could you have a look at the change events Opus is receiving to see if there's anything unusual there? The Debugging section near the bottom of this post has instructions: Changes to folders are not being detected
There's only one snapshot in the zip (the instructions say to make 5 or so) so I can't tell if some of what it shows was just executing when the snapshot was made by chance, or if it was always executing.
(Correction: The instructions used to say to make 5 or so. That got lost when we split them out from another post. I'll add that back in. Our mistake!)
However, what I can tell from the single snapshot is that none of Opus's own threads are doing anything at all.
But something has created a large number of .Net threads (Opus doesn't use .Net at all, so we know they aren't ours) which are all doing various things, including network activity.
Avast Antivirus also looks like it's doing something, although it's hard to be sure if it's involved in the issue or not, since it's common for antivirus to get involved in any filesystem access.
I would try disabling all the shell extensions on your machine and then reboot, to see if that fixes the problem. If it does, re-enable a few at a time until it comes back, and you should be able to track down which one is causing it from there.
These are the non-Windows ones that the snapshot says are loaded into the process:
I have good news!
Opus RAM and CPU usage had dropped down significantly and Opus is only using at max 5% CPU compared to to the previous 85% when browsing files.
I downloaded ShellExView and disabled all non-Microsoft shell extensions, uninstalled Google Drive, MEGA Sync, and Listary as I don't use them, and restarted the computer.
Checked Opus CPU usage and it was perfect! Running at around 1%. Browsing local and NAS files doesn't use up much CPU as well. Opus seems to be more responsive and I can go in and out of directories much quicker - there is no delay.
The last 7 extensions are the only .NET extensions on the list and I'm sure they are the cause of the high CPU usage. They belong to WD Discovery, a program for external WD drives. You can see that the path is wrong even though the files do exist in the Program Files folder.
I uninstalled WD Discovery and the 7 entries were removed.
It turned out it had nothing to do the torrents downloading in the background or the NAS after all, which is great.
No offense, however this is once again an example to NOT install each single crapware that those hardware and software manufacturers deliver and want us to install it on our machines. This includes anti virus software as well as graphics cards and main boards manufacturers.
I have given up doing so centuries ago and I running an almost stable Windows 10 since then without having to reset or to reinstall it every few months.
When testing new software or tools I fire up one of my virtual machines and install it there without trashing my real Windows.
As you noticed already, most of those shell extensions slows down Windows Explorer at any time and most of them you will not even notice nor need them. Unfortunately those software producers think installing a maximum of those extensions is good for their users - definitely it's not.
Again unfortunately, not many of the users not even know about this practice and are wise enough to discover and remove or disable the correct extensions if they make some trouble.
I don't say that each single shell extension is causing troubles but the amount of them may do later on.