?TC rereads panel after opening some dialog

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: Hacker, petermad, Stefan2, white

Post Reply
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

?TC rereads panel after opening some dialog

Post by *MVV »

I noticed it while moving videos from my camera (MicroSD card class 10) to PC. I started move with BTM and opened configuration dialog. On OK TC started rereading directory contents and it was terribly slow (one item per some seconds, I saw it because updated item flashed). And TC was almost freezed, I tried to change panel's drive multiple times until TC changed it and cancelled reread operation. I see something similar often when TC does some background reading/writing from/to USB stick and try to browse it (or simply have its folder opened and switch between windows).

I think TC should reduce reread operations if not necessary (there is no any need to update panel contents after opening/closing configuration dialog). Or (maybe and) raise priority of folder readings.

Notes:
1. Auto-refresh is disabled.
2. Noreread=ABHIJKLMNOPQSTUVWXYZ (all letters except fixed drive letters), so TC does reread w/o any permission.

Here you can see short video, it was made after that terrible reread and works faster (number of files in folder decreased because of move operation, there was ~50 files before move) but it still shows how slowly TC does reread while BTM copying something from stick.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Wow, that's horribly slow - any idea what is going on (e.g. when looking with "process monitor"? Looks like TC is re-loading icons or overlay icons.
Author of Total Commander
https://www.ghisler.com
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

I made a test with clean INI using my phone's MicroSD, it works much faster with disabled overlays, and all become slow again when I enable them.
Does TC draw overlays in main drawing thread? It would be nice to draw standard icons first and then add overlays in background thread when folder is listed and UI is responsive.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

No, it loads them in the background thread and later draws the overlay icons in the foreground. That shouldn't cause such a horrible delay in the foreground! Any idea what overlay extension is causing it?
Author of Total Commander
https://www.ghisler.com
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

I clearly see that main thread is hungs: TC draws items one by one and when it hangs it draws icon and tries to draw file name near the icon... maybe when TC tries to apply overlay?

Strange, I disabled ALL items in ShExView and I still see how TC freezes sometimes between drawing icon and text (maybe TC just gets filelist by blocks but why does it freeze between drawing icon and text?).
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Sorry, I have no idea, and I cannot reproduce it either.
Author of Total Commander
https://www.ghisler.com
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Do you have slow MicroSD cards in some device?

By the way here I see same behaviour: TC hangs while rereading folder contents (while child TC process writes file during termination), but in that case it lasts for about 20 seconds (12 files in a folder), and I can do nothing because it doesn't reacts on keypresses (Esc too).
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Post by *Balderstrom »

This isn't just Beta-related is it? I get agonizingly slow drive loads/refreshes for even hard-drives.

Especially noticeable when opening "My Computer" or one of the 4 drives that hasn't been active recently. TC freezes, and Windows usually offers to shut down the offending application before TC finally responds.

I've often wondered why TC doesn't "cache" the base-drive info, and root folders of all the drives; display from the cache, and update in the background - without locking up the whole program.
*BLINK* TC9 Added WM_COPYDATA and WM_USER queries for scripting.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

No, it's not beta-related. It's probably caused by some third party icon or icon overlay extension. But so far I have no clue what is causing it in this specific case. You can try to disable icon-related shell extensions with ShellExView and check if it helps.
Author of Total Commander
https://www.ghisler.com
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Balderstrom,
In your case HDD may simply park heads or spin down (standby mode) so it needs some time to be able to read some data from it.

ghisler,
I doubt that it is a shell extension because I tried to disable all of them, and I never install many programs with shell extensions. Problem is that TC sometimes tries to get data and hangs if drive is busy...
Skif_off
Member
Member
Posts: 134
Joined: 2013-09-30, 13:13 UTC

Post by *Skif_off »

MVV wrote:I tried to disable all of them
In Safe mode as well?
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Skif_off wrote:In Safe mode as well?
I disabled all items that ShellExView displayed and then restarted TC, I didn't reboot PC.
Skif_off
Member
Member
Posts: 134
Joined: 2013-09-30, 13:13 UTC

Post by *Skif_off »

MVV wrote:I disabled all items that ShellExView displayed
It's good idea, but I usually just in case check in Safe mode and/or WinPE in order to exclude problems in OS.
User avatar
MVV
Power Member
Power Member
Posts: 8711
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

The topic question is still remains opened anyway - why TC rereads panel when I close Configuration dialog (or Attributes dialog, or Sync dialog, ...), even if I close it by Esc.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50541
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

The lists are refreshed in two cases:
1. Some of the changes made in settings may affect the file list
2. When receiving directory change notifications while a dialog box is up, they are ignored - but the lists are refreshed when TC gets the focus back

But this isn't the problem - it doesn't explain why reading the directory is so slow in his case.
Author of Total Commander
https://www.ghisler.com
Post Reply