This forum uses cookies. Click X button to hide this message. What is stored? 
Total Commander Forum Index Total Commander
Forum - Public Discussion and Support
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Strange GUI delays
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> TC7.5x(a) final bug reports (English) Printable version
View previous topic :: View next topic  
Author Message
coder_x86
Junior Member
Junior Member


Joined: 20 Feb 2010
Posts: 3
Location: Ukraine

PostPosted: Mon Feb 22, 2010 2:06 am    Post subject: Strange GUI delays Reply with quote

A few days ago I've installed Total Commander v7.50a. All new features are really awesome and everything would be cool if new TC didn't become slower in comparison with previous v7.04a version in such basic operations as creating and deleting folders! I mean that the GUI is now less responsive. For example, when I create a new empty folder I can see that it appears in the list only after a short delay and it feels like it has to redraw something complicated. The same thing when deleting files/folders, sometimes it is even possible to notice a slight flicker. In v7.04a I could produce a series of {Del, Enter} keystrokes in less than a second and it worked immediately - file list was redrawn in almost no time.

I made a small investigation using Process Monitor on a clean Windows XP SP3 (x86) installation in VMWare v7.0 with the default installation of TC v7.50a and v7.04a and it looks like there is a problem in a new TC itself. Please notice a strange ~100ms delay on the following screenshots for v7.50a when creating and deleting an empty "test" folder which takes place right after an actual file operation has been carried out, but before refreshing the list of files.

v7.50a creating test folder:
Image: http://i2.fastpic.ru/big/2010/0222/78/d05e3a93d3ff64ae90b58255f41f6378.png

v7.50a deleting test folder:
Image: http://i2.fastpic.ru/big/2010/0222/38/eafc96b49db7eb61a81df98ebf726e38.png

Process Monitor also revealed that the total time required to perform create/delete folder operation considerably increased, even taking into account this strange delay, for my PC these values are:
v7.04a: creates test folder in ~45ms, deletes in ~85ms
v7.50a: creates in ~230ms (would be ~130ms w/o delay), deletes in ~175ms (~75ms w/o delay)

Can anybody advise something about how to resolve this annoying bug/feature? I tried searching the forum, but didn't find anything like that.
Back to top
View user's profile Send private message Send e-mail
ghisler(Author)
Site Admin
Site Admin


Joined: 04 Feb 2003
Posts: 34739
Location: Switzerland

PostPosted: Mon Feb 22, 2010 11:07 am    Post subject: Reply with quote

Unfortunately I cannot reproduce the problem here. Can anyone else reproduce it?
_________________
Author of Total Commander
http://www.ghisler.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
MVV
Power Member
Power Member


Joined: 03 Aug 2008
Posts: 7915
Location: Russian Federation

PostPosted: Mon Feb 22, 2010 11:35 am    Post subject: Reply with quote

I think I may confirm that 7.04a creates and goes to created folder more quickly than 7.50a - it seems to be so.

You may try to open both TC versions in same folder and to create some new folders in both TCs in order to see reaction speed.
_________________
TCFS2 + TCFS2Tools: Full-screen mode for TC etc (forum)
TOTALCMD.NET: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message Send e-mail
Sob
Power Member
Power Member


Joined: 19 Jan 2005
Posts: 902

PostPosted: Tue Feb 23, 2010 4:04 pm    Post subject: Reply with quote

I'm joining the investigation. :) I see it here and you can too, thanks to nice little program called CamStudio:

http://www.volny.cz/sobosh/tc-mkdir.avi (1.1MB)

Left is TC 7.04, right is TC 7.50a, running side by side under Windows 7 x64.

Text description:

(1 frame in video is 5ms)

TC 7.04:

02.990 - create directory dialog is visible and has focus
02.995 - dialog closed, area where it covered file list is blank (background color), other parts of file list are visible
(nothing for next 15ms)
03.010 - all done, folder created, file list is fully repainted

total time = ~20ms

TC 7.50a:

05.545 - create directory dialog is visible and has focus
05.550 - dialog loses focus (not always visible)
05.570 - dialog closed, whole file list gets painted with background color
(nothing for next 105ms - every time it's about 100ms)
05.675 - first lone icon is painted in file list
(nothing for next 110ms - not always, I'd say it's 75% chance to be about 100ms or about 5ms)
05.785 - file list is fully repainted

total time = ~240ms (always at least 150ms)
Back to top
View user's profile Send private message Send e-mail
Sob
Power Member
Power Member


Joined: 19 Jan 2005
Posts: 902

PostPosted: Tue Feb 23, 2010 6:29 pm    Post subject: Reply with quote

I tried some more with clean Windows XP SP3 x86 in VirtualBox. Following are logs from Process Monitor, showing the part when the delay occurs. TC was started with clean ini file and only two panels (C:\Temp\!tctest in left, C:\ in right), no other tabs.

TC 7.04: 2.4ms, almost instant
Code:
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"0:37:04,4982018","tc704.exe","1972","CreateFile","C:\Temp\!tctest\test704","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Create, Options: Directory, Synchronous IO Non-Alert, Attributes: N, ShareMode: Read, Write, AllocationSize: 0, OpenResult: Created"
"0:37:04,4990564","tc704.exe","1972","CloseFile","C:\Temp\!tctest\test704","SUCCESS",""
"0:37:04,4990948","tc704.exe","1972","IRP_MJ_CLOSE","C:\Temp\!tctest\test704","SUCCESS",""
"0:37:04,4995616","tc704.exe","1972","CreateFile","C:\Temp\!tctest\test704","SUCCESS","Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:37:04,4996260","tc704.exe","1972","CloseFile","C:\Temp\!tctest","SUCCESS",""
"0:37:04,4996601","tc704.exe","1972","IRP_MJ_CLOSE","C:\Temp\!tctest","SUCCESS",""
"0:37:04,4999325","tc704.exe","1972","CreateFile","C:\treeinfo.wc","NAME NOT FOUND","Desired Access: Generic Read, Disposition: Open, Options: Sequential Access, Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: None, AllocationSize: n/a"
"0:37:04,5003341","tc704.exe","1972","CreateFile","C:\","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:37:04,5003920","tc704.exe","1972","QueryDirectory","C:\*","SUCCESS","Filter: *, 1: AUTOEXEC.BAT"
"0:37:04,5005092","tc704.exe","1972","CreateFile","C:\","SUCCESS","Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:37:04,5005712","tc704.exe","1972","CloseFile","C:\Temp\!tctest\test704","SUCCESS",""
"0:37:04,5006143","tc704.exe","1972","IRP_MJ_CLOSE","C:\Temp\!tctest\test704","SUCCESS",""

TC 7.50a: 106ms, huge difference
Code:
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"0:37:06,3749941","tc750a.exe","544","CreateFile","C:\Temp\!tctest\test750a","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Create, Options: Directory, Synchronous IO Non-Alert, Attributes: N, ShareMode: Read, Write, AllocationSize: 0, OpenResult: Created"
"0:37:06,3764225","tc750a.exe","544","CloseFile","C:\Temp\!tctest\test750a","SUCCESS",""
"0:37:06,3765016","tc750a.exe","544","IRP_MJ_CLOSE","C:\Temp\!tctest\test750a","SUCCESS",""
"0:37:06,3774983","tc750a.exe","544","CreateFile","C:\Temp\!tctest\test750a","SUCCESS","Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:37:06,3776326","tc750a.exe","544","CloseFile","C:\Temp\!tctest","SUCCESS",""
"0:37:06,3777047","tc750a.exe","544","IRP_MJ_CLOSE","C:\Temp\!tctest","SUCCESS",""
"0:37:06,4466360","tc750a.exe","544","CloseFile","C:\","SUCCESS",""
"0:37:06,4467140","tc750a.exe","544","IRP_MJ_CLOSE","C:\","SUCCESS",""
"0:37:06,4794521","tc750a.exe","544","CreateFile","C:\","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:37:06,4797420","tc750a.exe","544","QueryDirectory","C:\*","SUCCESS","Filter: *, 1: AUTOEXEC.BAT"
"0:37:06,4802256","tc750a.exe","544","CreateFile","C:\","SUCCESS","Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:37:06,4804654","tc750a.exe","544","CloseFile","C:\Temp\!tctest\test750a","SUCCESS",""
"0:37:06,4805778","tc750a.exe","544","IRP_MJ_CLOSE","C:\Temp\!tctest\test750a","SUCCESS",""

This might provide some clue, TC 7.50a, Windows 7 x64
Code:
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"0:42:15,0151043","tc750a.exe","2900","CreateFile","C:\Temp\!tctest\test750a","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Create, Options: Directory, Synchronous IO Non-Alert, Open Reparse Point, Attributes: N, ShareMode: Read, Write, AllocationSize: 0, OpenResult: Created"
"0:42:15,0152510","tc750a.exe","2900","CloseFile","C:\Temp\!tctest\test750a","SUCCESS",""
"0:42:15,0152844","tc750a.exe","2900","IRP_MJ_CLOSE","C:\Temp\!tctest\test750a","SUCCESS",""
"0:42:15,0153738","tc750a.exe","2900","CreateFile","C:\Temp\!tctest\test750a","SUCCESS","Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:42:15,0154038","tc750a.exe","2900","CloseFile","C:\Temp\!tctest","SUCCESS",""
"0:42:15,0154214","tc750a.exe","2900","IRP_MJ_CLOSE","C:\Temp\!tctest","SUCCESS",""
"0:42:15,0476996","tc750a.exe","2900","CloseFile","C:\","SUCCESS",""
"0:42:15,0477261","tc750a.exe","2900","IRP_MJ_CLOSE","C:\","SUCCESS",""
"0:42:15,0515261","tc750a.exe","2900","CreateFile","\\zrout\e$\","SUCCESS","Desired Access: Read Data/List Directory, Read Attributes, Synchronize, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"0:42:15,0537358","tc750a.exe","2900","CloseFile","\\zrout\e$\","SUCCESS",""
"0:42:15,0537838","tc750a.exe","2900","IRP_MJ_CLOSE","\\zrout\e$\","SUCCESS",""
"0:42:15,1148504","tc750a.exe","2900","CreateFile","C:\","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"0:42:15,1149096","tc750a.exe","2900","QueryDirectory","C:\*","SUCCESS","Filter: *, 1: $Recycle.Bin"
"0:42:15,1149602","tc750a.exe","2900","QueryDirectory","C:\","SUCCESS","0: Boot, 1: CardReader, 2: cygwin, 3: Documents and Settings, 4: Program Files, 5: Program Files (x86), 6: ProgramData, 7: Recovery, 8: System Volume Information, 9: Temp, 10: Users, 11: Windows"
"0:42:15,1151852","tc750a.exe","2900","CreateFile","C:\","SUCCESS","Desired Access: Execute/Traverse, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"0:42:15,1152559","tc750a.exe","2900","CloseFile","C:\Temp\!tctest\test750a","SUCCESS",""
"0:42:15,1152985","tc750a.exe","2900","IRP_MJ_CLOSE","C:\Temp\!tctest\test750a","SUCCESS",""

For some reason TC accesses the network share. But this path is not opened in TC, it's just mapped as network drive T: which is also not opened in TC. Also three more network drives exist in system. So there is no reason why TC would access just this one.
Around the same place where is the network drive access, TC (7.50a only) also accessed c:\Windows\CSC\<somelongerpath>. It stopped when I turned off "Offline files" in Windows.
Back to top
View user's profile Send private message Send e-mail
coder_x86
Junior Member
Junior Member


Joined: 20 Feb 2010
Posts: 3
Location: Ukraine

PostPosted: Thu Feb 25, 2010 7:01 am    Post subject: Reply with quote

The trick is that these delays are present anyways, it doesn't matter have you any net drives connected or not and whether offline files are turned on or off. Process Monitor logs just prove that these delays aren't related to file operations and their quantity, but rather to some synchronization timeout or GUI update/redraw stuff. I even tried to kill all TC's worker threads with Process Explorer (except the main thread and one which gets automatically restarted by TC) to check if that might be caused by some background activity, but that didn't speed things up anyways. So my guess is that it is related to increased amounts of work related to repainting of UI elements and probably this issue can be resolved only with help of some advanced process profiling and debugging techniques/utilities...
Back to top
View user's profile Send private message Send e-mail
Lefteous
Power Member
Power Member


Joined: 08 Feb 2003
Posts: 9389
Location: Germany

PostPosted: Thu Feb 25, 2010 7:03 am    Post subject: Reply with quote

There is a hint to the treefile in Sob's log. Maybe the separate tree in involved as well.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
ghisler(Author)
Site Admin
Site Admin


Joined: 04 Feb 2003
Posts: 34739
Location: Switzerland

PostPosted: Thu Feb 25, 2010 2:35 pm    Post subject: Reply with quote

Hmm, no clue yet - doesn't look like a separate tree problem...
_________________
Author of Total Commander
http://www.ghisler.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
cheming
Member
Member


Joined: 07 May 2004
Posts: 148
Location: China

PostPosted: Fri Mar 12, 2010 6:08 pm    Post subject: Reply with quote

I also find that TC's repaint speed is too slow. You can see this when you minimize and restore a TC windows. The filelist window flashed when you do that.
Back to top
View user's profile Send private message
ghisler(Author)
Site Admin
Site Admin


Joined: 04 Feb 2003
Posts: 34739
Location: Switzerland

PostPosted: Mon Mar 15, 2010 10:45 am    Post subject: Reply with quote

Quote:
The filelist window flashed when you do that.

That's because TC re-reads the file list when you switch away from it and back! You can turn that off for slow drives in Configuration - Options - Refresh (upper part) by listing the slow drives there, and/or a backslash for paths without drive letter. You will have to press F2 or Ctrl+R to cause a manual refresh then.
_________________
Author of Total Commander
http://www.ghisler.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
liborm
Junior Member
Junior Member


Joined: 15 Mar 2010
Posts: 12

PostPosted: Tue Mar 16, 2010 4:06 am    Post subject: Reply with quote

I confirm the notable delay of 7.50 in comparison with 7.04a.
Back to top
View user's profile Send private message
ghisler(Author)
Site Admin
Site Admin


Joined: 04 Feb 2003
Posts: 34739
Location: Switzerland

PostPosted: Thu Mar 18, 2010 10:28 am    Post subject: Reply with quote

Unfortunately I cannot see any delay - to the contrary, TC 7.5 is faster here creating a directory because the directory history is saved in one step (one function call saves the entire section) instead of separate calls to save each directory.

To troubleshoot, try this:
1. Turn off any separate trees if used
2. Turn off icons
3. Delete treeinfo.wc from drive root (hidden file)

Does any of these help?
_________________
Author of Total Commander
http://www.ghisler.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
MVV
Power Member
Power Member


Joined: 03 Aug 2008
Posts: 7915
Location: Russian Federation

PostPosted: Thu Mar 18, 2010 12:49 pm    Post subject: Reply with quote

It is strange but now I can't see difference in folder creation speed - both 7.04a and 7.50a create dir and set focus in similar time delay. But I'm almost sure that I saw such difference last time when I checked it...
_________________
TCFS2 + TCFS2Tools: Full-screen mode for TC etc (forum)
TOTALCMD.NET: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message Send e-mail
Sob
Power Member
Power Member


Joined: 19 Jan 2005
Posts: 902

PostPosted: Thu Mar 18, 2010 4:53 pm    Post subject: Reply with quote

ghisler(Author) wrote:
Does any of these help?


Made no difference here.

--

This is an attempt for realiable way how to reproduce the issue. So far tested on 5 different systems having nothing in common with same results.

1) create test directories: C:\TCTest\, C:\TCTest\test704\, C:\TCTest\test750a\, C:\TCTest\rightpaneldir\

2) copy TC executables: totalcmd.exe 7.04 to C:\TCTest\tc704.exe, totalcmd.exe 7.50a to C:\TCTest\tc750a.exe

3) run TCs with following command lines:
Code:
c:\TCTest\tc704.exe /i=c:\TCTest\tc704.ini /f=c:\TCTest\ftp704.ini
c:\TCTest\tc750a.exe /i=c:\TCTest\tc750a.ini /f=c:\TCTest\ftp750a.ini

4) settings windows will pop up, because selected ini files don't exist yet, so TCs take it as first run; don't change anything

5) open C:\TCTest\rightpaneldir\ in right panel and C:\TCTest\test704\ in left (or C:\TCTest\test750a\, depending on TC version)

6) start Process Monitor (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) and set filter to include Process Name that begins with "tc7".

7) in both TCs create a new directory "newdir" in left panel

8) look for "newdir" in Process Monitor and you should see the exact pattern as in the following pictures; sometimes there may appear other entries mixed in, e.g. accessing the ini file, either ignore them or try creating another directory and there's a chance they won't be there again

http://www.volny.cz/sobosh/tc-mkdir704.png
http://www.volny.cz/sobosh/tc-mkdir750a.png

The entries with green background are exactly same in both versions. But there is something different going on in the middle. There is less than 1ms between end of first green block and beginning of the second in TC 7.04, while it's over 100ms in TC 7.50a.
Back to top
View user's profile Send private message Send e-mail
crmagicxxx
New Member
New Member


Joined: 20 Apr 2010
Posts: 1

PostPosted: Tue Apr 20, 2010 10:33 am    Post subject: Reply with quote

Just want to confirm same behavior as above. I am using XP. Because my daily work requires frequent switching between commander and other applications, and fast response from commander regarding pre-defined keystrokes and copy/move operations, I was forced to downgrade to 7.04 again. That slight pause in file list refreshment in version 7.50a was just too much for me and I was facing lost keystrokes all the time while commander was refreshing the screen

I hope this will be resolved soon

Best
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> TC7.5x(a) final bug reports (English) All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Impressum: This site is maintained by Ghisler Software GmbH

Using phpBB © 2001-2005 phpBB Group