Page 1 of 1

[solved] RestoreMaxiTree with network drive kills performance

Posted: 24 Mar 2019 19:42
by daniel_m
Solution: Use the 32-bit context menu instead of the 64-bit menu. The 64-bit menu is a compiled AutoHotkey script that cannot be fixed because the source code is not available.

(I am not talking about the start up time)

My PC has a NAS permanently attached to it via SAMBA. For a while now I am struggling with an extremely unresponsive XYplorer when I right-click files and folders anywhere (local or network). Often, XYplorer stays unresponsive for >5 seconds.

I narrowed the problem down to RestoreMaxiTree=1 and at least one MaxiTreePaths pointing to my NAS.
When XYplorer starts, I see a CPU and IO spike on my NAS, as expected. Unexpectedly, I see these spikes when I right-click files/folders on my local SSD. This is peculiar, since right-clicking should not affect the state of the tree(s) at all. And even if a file operation would affect a tree on my SSD, the tree(s) on the NAS do not have to be refreshed.
Therefore, I see no reason why XYplorer has to access the network drive so frequently.

Since I love RestoreMaxiTree, I'd appreciate a discussion, and maybe even a fix :biggrin:. As stated above, I do not mind a longer start up time at all.

Edit: I might have to do some more testing with RestoreMaxiTree=0. When the tree shows folders on the network, I might get the same result. :cry:
Edit 2: Disabling auto refresh on network drives did not help.

Re: RestoreMaxiTree with network drive kills performance

Posted: 25 Mar 2019 09:24
by admin
There is no connection between right-click menu and the RestoreMaxiTree setting, so that cannot possibly affect the speed. But you didn't mean to say that, right?

Which right-click menu are you showing, 32-bit or 64-bit? (Configuration | Other | Shell Integration | 64-bit Windows | Show the 64-bit context menu)

Re: RestoreMaxiTree with network drive kills performance

Posted: 25 Mar 2019 22:42
by daniel_m
Thanks for your reply!

I am using the 64-bit context menu. The 32-bit menu does not cause any problems.
And I found that the "error" occurs as soon as the network drive is expanded in the tree pane, independently of any settings. Apparently, expanding folders on the network drive worsens the problem. Even though XYplorer does not show any content of the network drive in the current tab.

Whenever I stress XYplorer with right-clicks (and the network drive expanded in the tree), instances of ContextMenu64.exe remain open. Without stressing XYplorer, only one instance of ContextMenu64.exe remains open all the time. The right-clicking leaves one zombie-instance per 15 clicks.

I also tested Windows Explorer and could not replicate the error. The "content" of the right-click menu does not seem to access the network drive.

Sorry, this all seems to be very mysterious and getting more complicated the closer I look ...

Re: RestoreMaxiTree with network drive kills performance

Posted: 25 Mar 2019 22:52
by highend
The 64-bit helper application is written in AutoHotkey. Unfortunately the source was never
published (the author demanded that this would be done in the first place but never delivered
the code afterwards...). It isn't perfect, obviously, because I've seen zombies of it myself in the
past. Unless the source code isn't provided there isn't much that can be done...

Re: RestoreMaxiTree with network drive kills performance

Posted: 25 Mar 2019 23:24
by daniel_m
Hm, I guess that means "problem solved" :biggrin:

I wasn't aware that ContextMenu64.exe is an AutoHotkey script. I will switch back to the XYplorer internal 32-bit menu and forget about the whole thing.

Thanks for the information!