Post a reply

Before posting, please read how to report bug or request support effectively.

Bug reports without an attached log file are usually useless.

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

frame86

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).
martin

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.
frame86

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?!
martin

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.
frame86

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?
frame86

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