File list / UI lags

Advertisement

frame86
Joined:
Posts:
4

File list / UI lags

The UI's screen update is lagging even for local view of files without any connections.

Just hovering over the files caues the issue if I move the cursor fast enough.

I'm using some DPI scaling but other apps have no problems with it so WinSCP is to address here.

The issue seems to be in the main thread - may I have some debug build?

Version: 6.3.5 (14991)
OS: Windows 10

Reply with quote

Advertisement

frame86
Joined:
Posts:
4

Looks fresh but the issue is still present.

May that helps:

UI Thread:
Duration: ~10s

Top exlusive call cost

idle:

NtUserWaitMessage: 96.78%
NtUserMessageCall: 0.90%
NtGdiRestoreDC: 0.75%
NtUserWindowFromDC: 0.26%

interacting:

CallWindowProcW: 94.58%
NtUserPeekMessage: 2.63%
NtCallbackReturn: 2.40%
NtUserSystemParametersInfo: 0.28%

Inclusive (blocking or blocked) cost interesting parts:

idle:

RtlGetAppContainerNamedObjectPath: 98.28%
NtUserWaitMessage: 96.78%
AddClipboardFormatListener: 1.65%

interacting:

TMethodImplementationIntercept: 100.00%
GetClassLongW: 95.39%
AddClipboardFormatListener: 95.39%
MyFinalize: 94.58%
CallWindowProcW: 94.58%

Stack:
CallWindowProcW @ USER32
MyFinalize @ WinSCP
TMethodImplementationIntercept @ WinSCP
AddClipboardFormatListener @ USER32
GetClassLongW @ USER32
GetClassLongW @ USER32
CallNextHookEx @ USER32
KiUserCallbackDispatcher @ ntdll
DispatchMessageW @ USER32
TMethodImplementationIntercept @ WinSCP

It seems that there is a bad relationship between clipboard listener & hook? But I don't know if AddClipboardFormatListener means that a listener is being registered multiple times or the function does really weird stuff by preparing to call the registered callback?

Reply with quote

martin
Site Admin
martin avatar

Thanks. How did you get that stack?
WinSCP only ever calls AddClipboardFormatListener, when you open the Import session window (what I assume that you do now). The TMethodImplementationIntercept do not seem to be ever called. So I do not think that the stack addresses were interpreted correctly.

Reply with quote

frame86
Joined:
Posts:
4

No, WinSCP was opened all the time. I only hovered over the local file list (Commander View) a few times, did nothing else while capturing.

The functions were extracted from Very Sleepy Profiler with MS DbgHelp. I also doubt that the tool captures a call stack correctly, however I captured the events from SysInternals ProcessMon too, it shows a similar activity from MyFinalize() and TMethodImplementationIntercept().

when you open the Import session window
Btw: this window takes ~ 10 sec before it appears?!

Reply with quote

Advertisement

martin
Site Admin
martin avatar

Sorry, the "now" should have been "not".

I have sent you an email with a debug version of WinSCP to the address you have used to register on this forum.

Reply with quote

frame86
Joined:
Posts:
4

Thanks,

to my suprise, I could now reproduce the issue on other app handles too. For some reason it has a higher visual impact on WinSCP but it might be another problem, not a WinSCP issue.

I'll try to get rid of the problem and then use the debug build for the window opening latency (if it's still present).

Reply with quote

Advertisement

You can post new topics in this forum