Slowness / High CPU Usage when typing in Categories and Tags Topic is solved

Moderator: abstr

fitnerd
Posts: 51
Joined: Wed Nov 20, 2019 7:19 am

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by fitnerd » Sat Jan 25, 2020 7:50 am

Hi Dan!

Sorry for the delayed response.

Strangely, I could not see pdb info in Visual Studio, but was able to get stack traces in the Process Monitor. In any case, here's the stack trace shortly after (like a second) after I hit Return upon entering existing tag in the dropdown:

Code: Select all

0, ntoskrnl.exe!KeWaitForMutexObject+0x30c1
1, ntoskrnl.exe!KeWaitForMutexObject+0x1521
2, ntoskrnl.exe!KeWaitForMutexObject+0xadb
3, ntoskrnl.exe!KeWaitForMutexObject+0x1ff
4, ntoskrnl.exe!ExWaitForRundownProtectionRelease+0x9fa
5, ntoskrnl.exe!KeWaitForMutexObject+0x31cb
6, ntoskrnl.exe!KiCheckForKernelApcDelivery+0x27
7, ntoskrnl.exe!ExReleaseResourceAndLeaveCriticalRegion+0x188
8, win32kbase.sys!UserSessionSwitchLeaveCrit+0x4a
9, win32kfull.sys!NtUserIsNonClientDpiScalingEnabled+0xa9
10, ntoskrnl.exe!setjmpex+0x6f53
11, wow64win.dll+0x17644
12, wow64win.dll+0x6acc
13, wow64.dll!Wow64SystemServiceEx+0x153
14, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
15, wow64cpu.dll!BTCpuSimulate+0x9
16, wow64.dll!Wow64LdrpInitialize+0x236
17, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
18, wow64win.dll+0x2dbf
19, ntdll.dll!KiUserCallbackDispatcher+0x24
20, wow64win.dll+0xf3a4
21, wow64win.dll+0x3ea2
22, wow64win.dll+0x3fd3
23, wow64.dll!Wow64SystemServiceEx+0x153
24, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
25, wow64cpu.dll!BTCpuSimulate+0x9
26, wow64.dll!Wow64LdrpInitialize+0x236
27, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
28, wow64win.dll+0x2431
29, ntdll.dll!KiUserCallbackDispatcher+0x24
30, wow64win.dll+0xf744
31, wow64win.dll+0x6b16
32, wow64.dll!Wow64SystemServiceEx+0x153
33, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
34, wow64cpu.dll!BTCpuSimulate+0x9
35, wow64.dll!Wow64LdrpInitialize+0x236
36, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
37, wow64win.dll+0x2dbf
38, ntdll.dll!KiUserCallbackDispatcher+0x24
39, wow64win.dll+0xf3a4
40, wow64win.dll+0x3ea2
41, wow64win.dll+0x3fd3
42, wow64.dll!Wow64SystemServiceEx+0x153
43, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
44, wow64cpu.dll!BTCpuSimulate+0x9
45, wow64.dll!Wow64LdrpInitialize+0x236
46, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
47, wow64win.dll+0x2431
48, ntdll.dll!KiUserCallbackDispatcher+0x24
49, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x544
50, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x503
51, wow64cpu.dll!BTCpuSimulate+0x9
52, wow64.dll!Wow64LdrpInitialize+0x236
53, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
54, wow64win.dll+0x3a299
55, ntdll.dll!KiUserCallbackDispatcher+0x24
56, wow64win.dll+0xf3a4
57, wow64win.dll+0x3ea2
58, wow64win.dll+0x3fd3
59, wow64.dll!Wow64SystemServiceEx+0x153
60, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
61, wow64cpu.dll!BTCpuSimulate+0x9
62, wow64.dll!Wow64LdrpInitialize+0x236
63, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
64, wow64win.dll+0x3a299
65, ntdll.dll!KiUserCallbackDispatcher+0x24
66, wow64win.dll+0xf3a4
67, wow64win.dll+0x3ea2
68, wow64win.dll+0x3fd3
69, wow64.dll!Wow64SystemServiceEx+0x153
70, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
71, wow64cpu.dll!BTCpuSimulate+0x9
72, wow64.dll!Wow64LdrpInitialize+0x236
73, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
74, wow64win.dll+0x2dbf
75, ntdll.dll!KiUserCallbackDispatcher+0x24
76, wow64win.dll+0xf3a4
77, wow64win.dll+0x3ea2
78, wow64win.dll+0x4149
79, wow64.dll!Wow64SystemServiceEx+0x153
80, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
81, wow64cpu.dll!BTCpuSimulate+0x9
82, wow64.dll!Wow64LdrpInitialize+0x236
83, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
84, wow64win.dll+0x2dbf
85, ntdll.dll!KiUserCallbackDispatcher+0x24
86, wow64win.dll+0xf3a4
87, wow64win.dll+0x3ea2
88, wow64win.dll+0x4149
89, wow64.dll!Wow64SystemServiceEx+0x153
90, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
91, wow64cpu.dll!BTCpuSimulate+0x9
92, wow64.dll!Wow64LdrpInitialize+0x236
93, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
94, wow64win.dll+0x2dbf
95, ntdll.dll!KiUserCallbackDispatcher+0x24
96, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x544
97, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x503
98, wow64cpu.dll!BTCpuSimulate+0x9
99, wow64.dll!Wow64LdrpInitialize+0x236
100, wow64.dll!Wow64LdrpInitialize+0x120
101, ntdll.dll!LdrInitShimEngineDynamic+0x3047
102, ntdll.dll!memset+0x1e4c5
103, ntdll.dll!LdrInitializeThunk+0x5b
104, ntdll.dll!LdrInitializeThunk+0xe
105, win32u.dll!NtUserIsNonClientDpiScalingEnabled+0xc (No unwind info)
106, uxtheme.dll!IsThemePartDefined+0x7c3 (No unwind info)
107, uxtheme.dll!Ordinal49+0x49 (No unwind info)
108, comctl32.dll!CCSetScrollInfo+0x90a (No unwind info)
109, comctl32.dll!CCSetScrollInfo+0x48e (No unwind info)
110, uxtheme.dll!GetThemeAppProperties+0x61b (No unwind info)
111, user32.dll!SetScrollInfo+0xb4 (No unwind info)
112, comctl32.dll!TaskDialogIndirect+0x4d22e (No unwind info)
113, comctl32.dll!TaskDialogIndirect+0x2ccfb (No unwind info)
114, comctl32.dll!TaskDialogIndirect+0x1c436 (No unwind info)
115, comctl32.dll!TaskDialogIndirect+0x1c7cf (No unwind info)
116, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
117, user32.dll!DispatchMessageW+0x97a (No unwind info)
118, user32.dll!DispatchMessageW+0x51a (No unwind info)
119, user32.dll!SystemParametersInfoW+0x4a9 (No unwind info)
120, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
121, user32.dll!GetWindowRect+0xacc (No unwind info)
122, user32.dll!GetWindowRect+0x5ef (No unwind info)
123, uxtheme.dll!IsThemePartDefined+0x2e8c (No unwind info)
124, uxtheme.dll!IsThemePartDefined+0x1cd8 (No unwind info)
125, user32.dll!GetWindowRect+0x872 (No unwind info)
126, comctl32.dll!TaskDialogIndirect+0x1d5ee (No unwind info)
127, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
128, user32.dll!DispatchMessageW+0x97a (No unwind info)
129, user32.dll!DispatchMessageW+0x51a (No unwind info)
130, user32.dll!IsServerSideWindow+0xa1 (No unwind info)
131, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
132, comctl32.dll!TaskDialogIndirect+0x1c7cf (No unwind info)
133, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
134, user32.dll!DispatchMessageW+0x97a (No unwind info)
135, user32.dll!DispatchMessageW+0x51a (No unwind info)
136, user32.dll!SystemParametersInfoW+0x4a9 (No unwind info)
137, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
138, user32.dll!GetWindowRect+0xacc (No unwind info)
139, user32.dll!GetWindowRect+0x5ef (No unwind info)
140, uxtheme.dll!IsThemePartDefined+0x2e8c (No unwind info)
141, uxtheme.dll!IsThemePartDefined+0x1cd8 (No unwind info)
142, user32.dll!GetWindowRect+0x872 (No unwind info)
143, comctl32.dll!TaskDialogIndirect+0x1d5ee (No unwind info)
144, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
145, user32.dll!DispatchMessageW+0x97a (No unwind info)
146, user32.dll!DispatchMessageW+0x51a (No unwind info)
147, user32.dll!IsServerSideWindow+0xa1 (No unwind info)
148, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
149, user32.dll!SetScrollInfo+0xb4 (No unwind info)
150, comctl32.dll!TaskDialogIndirect+0x4d22e (No unwind info)
151, comctl32.dll!TaskDialogIndirect+0x4d2dd (No unwind info)
152, comctl32.dll!TaskDialogIndirect+0x4cde6 (No unwind info)
153, comctl32.dll!TaskDialogIndirect+0x1cfe1 (No unwind info)
154, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
155, user32.dll!DispatchMessageW+0x97a (No unwind info)
156, user32.dll!DispatchMessageW+0x51a (No unwind info)
157, user32.dll!RegisterLogonProcess+0x1bd0 (No unwind info)
158, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
159, user32.dll!SendMessageW+0x137 (No unwind info)
160, comctl32.dll!TaskDialogIndirect+0x1d866 (No unwind info)
161, comctl32.dll!TaskDialogIndirect+0x1ff8a (No unwind info)
162, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
163, user32.dll!DispatchMessageW+0x97a (No unwind info)
164, user32.dll!CallWindowProcW+0x8d (No unwind info)
165, mfc42u.dll!Ordinal2377+0x61 (No unwind info)
166, mfc42u.dll!Ordinal6370+0x5b (No unwind info)
167, mfc42u.dll!Ordinal1108+0xbc (No unwind info)
168, mfc42u.dll!Ordinal1571+0x36 (No unwind info)
169, mfc42u.dll!Ordinal1572+0x2f (No unwind info)
170, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
171, user32.dll!DispatchMessageW+0x97a (No unwind info)
172, user32.dll!DispatchMessageW+0x51a (No unwind info)
173, user32.dll!RegisterLogonProcess+0x1bd0 (No unwind info)
174, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
175, user32.dll!SendMessageW+0x137 (No unwind info)
176, ToDoList.exe!CAutoComboBox::InsertUniqueItem+0x1d4
177, ToDoList.exe!CAutoComboBox::AddUniqueItem+0x19
178, ToDoList.exe!CAutoComboBox::AddUniqueItems+0x2d
179, ToDoList.exe!CAutoComboBox::SetStrings+0x40
180, ToDoList.exe!CEnCheckComboBox::SetStrings+0x62
181, ToDoList.exe!CTDLFilterBar::RefreshFilterControls+0x18c (No unwind info)
182, ToDoList.exe!CTDLFilterBar::RefreshFilterControls+0xa (No unwind info)
183, ToDoList.exe!CToDoListWnd::RefreshFilterBarControls+0x49 (No unwind info)
184, ToDoList.exe!CToDoListWnd::OnToDoCtrlNotifyListChange+0x24
185, mfc42u.dll!Ordinal1142+0xab (No unwind info)
186, mfc42u.dll!Ordinal5157+0x7b6 (No unwind info)
187, mfc42u.dll!Ordinal6370+0x3a (No unwind info)
188, mfc42u.dll!Ordinal1108+0xbc (No unwind info)
189, mfc42u.dll!Ordinal1571+0x36 (No unwind info)
190, mfc42u.dll!Ordinal1572+0x2f (No unwind info)
191, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
192, user32.dll!DispatchMessageW+0x97a (No unwind info)
193, user32.dll!CallWindowProcW+0x8d (No unwind info)
194, apphelp.dll!SE_WINRT_HookObject+0x155 (No unwind info)
195, ToDoList.exe!CSubclassWnd::WindowProc+0x79
196, ToDoList.exe!CSubclassWnd::Default+0x32
197, ToDoList.exe!CWindowIcons::WindowProc+0x32
198, ToDoList.exe!CSubclassWnd::WindowProc+0x58
199, ToDoList.exe!CSubclassWnd::Default+0x32
200, ToDoList.exe!CToolbarHelper::WindowProc+0x88
201, ToDoList.exe!CSubclassWnd::WindowProc+0x58
202, ToDoList.exe!CSubclassWnd::Default+0x32
203, ToDoList.exe!CMenuIconMgr::WindowProc+0x7d
204, ToDoList.exe!CSubclassWnd::WindowProc+0x58
205, ToDoList.exe!CShortcutManager::WindowProc+0x2d
206, ToDoList.exe!CSubclassWnd::WindowProc+0x58
207, ToDoList.exe!CSubclassWnd::Default+0x32
208, ToDoList.exe!CToolbarHelper::WindowProc+0x88
209, ToDoList.exe!CSubclassWnd::HookWndProc+0xe3
210, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
211, user32.dll!DispatchMessageW+0x97a (No unwind info)
212, user32.dll!DispatchMessageW+0x51a (No unwind info)
213, user32.dll!SystemParametersInfoW+0x4a9 (No unwind info)
214, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
215, user32.dll!SendMessageW+0x137 (No unwind info)
216, ToDoList.exe!CToDoCtrl::OnAutoComboAddDelete+0x84
217, mfc42u.dll!Ordinal1142+0xab (No unwind info)
218, mfc42u.dll!Ordinal5157+0x7b6 (No unwind info)
219, mfc42u.dll!Ordinal6370+0x3a (No unwind info)
220, mfc42u.dll!Ordinal1108+0xbc (No unwind info)
221, mfc42u.dll!Ordinal1571+0x36 (No unwind info)
222, mfc42u.dll!Ordinal1572+0x2f (No unwind info)
223, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
224, user32.dll!DispatchMessageW+0x97a (No unwind info)
225, user32.dll!DispatchMessageW+0x51a (No unwind info)
226, user32.dll!SystemParametersInfoW+0x4a9 (No unwind info)
227, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
228, user32.dll!SendMessageW+0x137 (No unwind info)
229, ToDoList.exe!CAutoComboBox::ParentACNotify+0x89
230, ToDoList.exe!CAutoComboBox::HandleReturnKey+0xaf
231, ToDoList.exe!CCheckComboBox::HandleReturnKey+0x44
232, ToDoList.exe!CAutoComboBox::OnEditboxMessage+0x1d1
233, ToDoList.exe!CCheckComboBox::OnEditboxMessage+0xff
234, ToDoList.exe!CAutoComboBox::ScWindowProc+0x26
235, ToDoList.exe!CSubclassWnd::HookWndProc+0xcf
236, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
237, user32.dll!DispatchMessageW+0x97a (No unwind info)
238, user32.dll!DispatchMessageW+0x51a (No unwind info)
239, 0x19fe58 (No unwind info)
240, ToDoList.exe!CToDoListWnd::ProcessShortcut+0x56 (No unwind info)
241, ToDoList.exe!CToDoListWnd::PreTranslateMessage+0x63
242, ToDoList.exe!CToDoListApp::PreTranslateMessage+0x19
243, mfc42u.dll!Ordinal5303+0x43 (No unwind info)
244, mfc42u.dll!Ordinal5711+0x6a (No unwind info)
245, mfc42u.dll!Ordinal1569+0xad (No unwind info)
246, ToDoList.exe!wWinMain+0x15
247, ToDoList.exe!wWinMainCRTStartup+0x15b (No unwind info)
248, kernel32.dll!BaseThreadInitThunk+0x24 (No unwind info)
249, ntdll.dll!RtlAreBitsSet+0x88 (No unwind info)
250, ntdll.dll!RtlAreBitsSet+0x58 (No unwind info)
Another sample:

Code: Select all

0, ntoskrnl.exe!KeWaitForMutexObject+0x30c1
1, ntoskrnl.exe!KeSynchronizeExecution+0x2dec
2, win32kfull.sys!CalcVisRgn+0x55e
3, win32kfull.sys!NtUserSetWindowPos+0x87a
4, win32kfull.sys!NtUserSetWindowPos+0x44e
5, win32kfull.sys!GetStyleWindow+0x1ef
6, win32kfull.sys!NtUserDispatchMessage+0xcb6
7, win32kfull.sys!SpbCheckDce+0x313
8, win32kfull.sys!SpbCheckDce+0x165
9, win32kfull.sys!NtUserSetWindowPos+0x224
10, ntoskrnl.exe!setjmpex+0x6f53
11, wow64win.dll+0xf744
12, wow64win.dll+0x6b16
13, wow64.dll!Wow64SystemServiceEx+0x153
14, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
15, wow64cpu.dll!BTCpuSimulate+0x9
16, wow64.dll!Wow64LdrpInitialize+0x236
17, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
18, wow64win.dll+0x2dbf
19, ntdll.dll!KiUserCallbackDispatcher+0x24
20, wow64win.dll+0xf3a4
21, wow64win.dll+0x3ea2
22, wow64win.dll+0x3fd3
23, wow64.dll!Wow64SystemServiceEx+0x153
24, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
25, wow64cpu.dll!BTCpuSimulate+0x9
26, wow64.dll!Wow64LdrpInitialize+0x236
27, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
28, wow64win.dll+0x2431
29, ntdll.dll!KiUserCallbackDispatcher+0x24
30, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x544
31, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x503
32, wow64cpu.dll!BTCpuSimulate+0x9
33, wow64.dll!Wow64LdrpInitialize+0x236
34, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
35, wow64win.dll+0x2dbf
36, ntdll.dll!KiUserCallbackDispatcher+0x24
37, wow64win.dll+0xf3a4
38, wow64win.dll+0x3ea2
39, wow64win.dll+0x4149
40, wow64.dll!Wow64SystemServiceEx+0x153
41, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
42, wow64cpu.dll!BTCpuSimulate+0x9
43, wow64.dll!Wow64LdrpInitialize+0x236
44, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
45, wow64win.dll+0x2dbf
46, ntdll.dll!KiUserCallbackDispatcher+0x24
47, wow64win.dll+0xf3a4
48, wow64win.dll+0x3ea2
49, wow64win.dll+0x4149
50, wow64.dll!Wow64SystemServiceEx+0x153
51, wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
52, wow64cpu.dll!BTCpuSimulate+0x9
53, wow64.dll!Wow64LdrpInitialize+0x236
54, wow64.dll!Wow64KiUserCallbackDispatcher+0x40d
55, wow64win.dll+0x2dbf
56, ntdll.dll!KiUserCallbackDispatcher+0x24
57, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x544
58, wow64cpu.dll!TurboDispatchJumpAddressEnd+0x503
59, wow64cpu.dll!BTCpuSimulate+0x9
60, wow64.dll!Wow64LdrpInitialize+0x236
61, wow64.dll!Wow64LdrpInitialize+0x120
62, ntdll.dll!LdrInitShimEngineDynamic+0x3047
63, ntdll.dll!memset+0x1e4c5
64, ntdll.dll!LdrInitializeThunk+0x5b
65, ntdll.dll!LdrInitializeThunk+0xe
66, win32u.dll!NtUserSetWindowPos+0xc (No unwind info)
67, comctl32.dll!TaskDialogIndirect+0x4de80 (No unwind info)
68, comctl32.dll!TaskDialogIndirect+0x4e16a (No unwind info)
69, comctl32.dll!TaskDialogIndirect+0x1f9af (No unwind info)
70, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
71, user32.dll!DispatchMessageW+0x97a (No unwind info)
72, user32.dll!CallWindowProcW+0x8d (No unwind info)
73, mfc42u.dll!Ordinal2377+0x61 (No unwind info)
74, mfc42u.dll!Ordinal2371+0x4b (No unwind info)
75, ToDoList.exe!CAutoComboBox::OnSize+0x87
76, mfc42u.dll!Ordinal1142+0xde (No unwind info)
77, mfc42u.dll!Ordinal5157+0x67f (No unwind info)
78, mfc42u.dll!Ordinal6370+0x3a (No unwind info)
79, mfc42u.dll!Ordinal1108+0xbc (No unwind info)
80, mfc42u.dll!Ordinal1571+0x36 (No unwind info)
81, mfc42u.dll!Ordinal1572+0x2f (No unwind info)
82, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
83, user32.dll!DispatchMessageW+0x97a (No unwind info)
84, user32.dll!DispatchMessageW+0x51a (No unwind info)
85, user32.dll!SystemParametersInfoW+0x4a9 (No unwind info)
86, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
87, user32.dll!GetWindowRect+0xacc (No unwind info)
88, user32.dll!GetWindowRect+0x5ef (No unwind info)
89, uxtheme.dll!IsThemePartDefined+0x2e8c (No unwind info)
90, uxtheme.dll!IsThemePartDefined+0x1cd8 (No unwind info)
91, user32.dll!GetWindowRect+0x872 (No unwind info)
92, comctl32.dll!TaskDialogIndirect+0x1f7bc (No unwind info)
93, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
94, user32.dll!DispatchMessageW+0x97a (No unwind info)
95, user32.dll!CallWindowProcW+0x8d (No unwind info)
96, mfc42u.dll!Ordinal2377+0x61 (No unwind info)
97, mfc42u.dll!Ordinal6370+0x5b (No unwind info)
98, mfc42u.dll!Ordinal1108+0xbc (No unwind info)
99, mfc42u.dll!Ordinal1571+0x36 (No unwind info)
100, mfc42u.dll!Ordinal1572+0x2f (No unwind info)
101, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
102, user32.dll!DispatchMessageW+0x97a (No unwind info)
103, user32.dll!DispatchMessageW+0x51a (No unwind info)
104, user32.dll!IsServerSideWindow+0xa1 (No unwind info)
105, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
106, ToDoList.exe!CDeferWndMove::EndMove+0xd
107, ToDoList.exe!CTDLFilterBar::ReposControls+0x335 (No unwind info)
108, ToDoList.exe!CTDLFilterBar::RefreshFilterControls+0x1f6 (No unwind info)
109, ToDoList.exe!CToDoListWnd::RefreshFilterBarControls+0x49 (No unwind info)
110, ToDoList.exe!CToDoListWnd::OnToDoCtrlNotifyListChange+0x24
111, mfc42u.dll!Ordinal1142+0xab (No unwind info)
112, mfc42u.dll!Ordinal5157+0x7b6 (No unwind info)
113, mfc42u.dll!Ordinal6370+0x3a (No unwind info)
114, mfc42u.dll!Ordinal1108+0xbc (No unwind info)
115, mfc42u.dll!Ordinal1571+0x36 (No unwind info)
116, mfc42u.dll!Ordinal1572+0x2f (No unwind info)
117, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
118, user32.dll!DispatchMessageW+0x97a (No unwind info)
119, user32.dll!CallWindowProcW+0x8d (No unwind info)
120, ToDoList.exe!CSubclassWnd::WindowProc+0x79
121, ToDoList.exe!CSubclassWnd::Default+0x32
122, ToDoList.exe!CWindowIcons::WindowProc+0x32
123, ToDoList.exe!CSubclassWnd::WindowProc+0x58
124, ToDoList.exe!CSubclassWnd::Default+0x32
125, ToDoList.exe!CToolbarHelper::WindowProc+0x88
126, ToDoList.exe!CSubclassWnd::WindowProc+0x58
127, ToDoList.exe!CSubclassWnd::Default+0x32
128, ToDoList.exe!CMenuIconMgr::WindowProc+0x7d
129, ToDoList.exe!CSubclassWnd::WindowProc+0x58
130, ToDoList.exe!CShortcutManager::WindowProc+0x2d
131, ToDoList.exe!CSubclassWnd::WindowProc+0x58
132, ToDoList.exe!CSubclassWnd::Default+0x32
133, ToDoList.exe!CToolbarHelper::WindowProc+0x88
134, ToDoList.exe!CSubclassWnd::HookWndProc+0xe3
135, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
136, user32.dll!DispatchMessageW+0x97a (No unwind info)
137, user32.dll!DispatchMessageW+0x51a (No unwind info)
138, user32.dll!SystemParametersInfoW+0x4a9 (No unwind info)
139, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
140, user32.dll!SendMessageW+0x137 (No unwind info)
141, ToDoList.exe!CToDoCtrl::OnAutoComboAddDelete+0x84
142, mfc42u.dll!Ordinal1142+0xab (No unwind info)
143, mfc42u.dll!Ordinal5157+0x7b6 (No unwind info)
144, mfc42u.dll!Ordinal6370+0x3a (No unwind info)
145, mfc42u.dll!Ordinal1108+0xbc (No unwind info)
146, mfc42u.dll!Ordinal1571+0x36 (No unwind info)
147, mfc42u.dll!Ordinal1572+0x2f (No unwind info)
148, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
149, user32.dll!DispatchMessageW+0x97a (No unwind info)
150, user32.dll!DispatchMessageW+0x51a (No unwind info)
151, user32.dll!SystemParametersInfoW+0x4a9 (No unwind info)
152, ntdll.dll!KiUserCallbackDispatcher+0x4d (No unwind info)
153, user32.dll!SendMessageW+0x137 (No unwind info)
154, ToDoList.exe!CAutoComboBox::ParentACNotify+0x89
155, ToDoList.exe!CAutoComboBox::HandleReturnKey+0xaf
156, ToDoList.exe!CCheckComboBox::HandleReturnKey+0x44
157, ToDoList.exe!CAutoComboBox::OnEditboxMessage+0x1d1
158, ToDoList.exe!CCheckComboBox::OnEditboxMessage+0xff
159, ToDoList.exe!CAutoComboBox::ScWindowProc+0x26
160, ToDoList.exe!CSubclassWnd::HookWndProc+0xcf
161, user32.dll!AddClipboardFormatListener+0x49b (No unwind info)
162, user32.dll!DispatchMessageW+0x97a (No unwind info)
163, user32.dll!DispatchMessageW+0x51a (No unwind info)
164, 0x19fe58 (No unwind info)
165, ToDoList.exe!CToDoListWnd::ProcessShortcut+0x56 (No unwind info)
166, ToDoList.exe!CToDoListWnd::PreTranslateMessage+0x63
167, ToDoList.exe!CToDoListApp::PreTranslateMessage+0x19
168, mfc42u.dll!Ordinal5303+0x43 (No unwind info)
169, mfc42u.dll!Ordinal5711+0x6a (No unwind info)
170, mfc42u.dll!Ordinal1569+0xad (No unwind info)
171, ToDoList.exe!wWinMain+0x15
172, ToDoList.exe!wWinMainCRTStartup+0x15b (No unwind info)
173, kernel32.dll!BaseThreadInitThunk+0x24 (No unwind info)
174, ntdll.dll!RtlAreBitsSet+0x88 (No unwind info)
175, ntdll.dll!RtlAreBitsSet+0x58 (No unwind info)
I have attached the ini file.

I also noticed that upon restarting computer it is not as bad, but slowly degrades over time (I use hibernation on Windows often). The strange part is that only this particular area (i.e. entering items in the dropdowns and hitting enter) seems to be affected - otherwise TDL still remains quite repsonsive, even after having been running for weeks.
Attachments
ToDoList.ini.zip
(6.83 KiB) Downloaded 71 times

User avatar
abstr
Site Admin
Posts: 366
Joined: Sun Jul 28, 2019 12:22 pm

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by abstr » Mon Jan 27, 2020 7:10 am

Hi Fitnerd

Unfortunately that didn't help except to suggest that some system calls look like they are repeating over and over and then the last few calls in the first stack show multiple 'waits' for something. TBH I'm not very good at stack traces which step outside my code and/or MFC42.

eg. 'AddClipboardFormatListener' appears multiple times even though I never call it either directly or indirectly from my code. And immediately after that call is a call to 'TaskDialogIndirect' which looks like an attempt to display a message of some sort.
callstack.PNG
callstack.PNG (42.84 KiB) Viewed 2003 times


However two further ideas come to me:

1. Have you considered building the source yourself and debugging it?

Strictly speaking you only need to build '3rdParty', 'Shared' and 'ToDoList' from ToDoList_7.2 and you would need to upgrade the project files from VS2010 to whatever VS version you have. And if there are any compile errors I'm sure we can fix them between us :)

2. Since you are using ProcMon.exe could you possibly send me the full set of filtered events for ToDoList.exe (File > Save > PSL)?

Just remember to clear the log right before you type in your new category and stop the capture almost immediately after pressing return.

3. This looks like an interesting tool for analysing performance issues

User avatar
abstr
Site Admin
Posts: 366
Joined: Sun Jul 28, 2019 12:22 pm

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by abstr » Mon Jan 27, 2020 7:51 am

ps. Can I ask about your 'A:\' drive (from ToDoList.log)? Is it anything special/interesting?

User avatar
abstr
Site Admin
Posts: 366
Joined: Sun Jul 28, 2019 12:22 pm

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by abstr » Mon Jan 27, 2020 7:59 am

pps. Do you either have a global clipboard manager installed on your system, or do you have the Windows 10 'clipboard history' feature enabled?
multiclip.PNG
multiclip.PNG (94 KiB) Viewed 1999 times

fitnerd
Posts: 51
Joined: Wed Nov 20, 2019 7:19 am

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by fitnerd » Mon Jan 27, 2020 8:06 am

Hi Dan!

Thank you for following up on this. I will follow on with your suggestions and let you know. You are right in that probably the best way would be to try to build the code myself and debug it directly (though I have almost 0 experience with C++).

A:\ drive is nothing special - just a regular SSD data drive (I decided to remap letters and use A:\ for my primary data drive).

I realize that this is unlikely to be an actual issue with TDL itself and I appreciate your efforts in helping me out with this. The somewhat strange aspect with this for me is that this delay / freezing becomes more prolonged the longer the OS runs without reboot. Initially it's under 1 second, but still a bit noticeable. Then, after 1 week it's like 3 seconds. After 2 weeks it's 7 seconds. And restarting TDL does not help in this regard at all, only a fool reboot fixes it.

Perhaps one of the clipboard monitoring apps have something to do with this, though how they could affect the stack of an entirely separate process is a mystery.

I will investigate a bit more and let you know my findings. Once again thank you for looking into this.

fitnerd
Posts: 51
Joined: Wed Nov 20, 2019 7:19 am

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by fitnerd » Mon Jan 27, 2020 8:08 am

Wow you beat me to this!

No, no Windows 10 Clipboard History, but I do have a clipboard manager (in fact several of them, as one records history, while the other offers text snippets). CopyQ is one of them.

User avatar
abstr
Site Admin
Posts: 366
Joined: Sun Jul 28, 2019 12:22 pm

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by abstr » Mon Jan 27, 2020 9:12 am

The thing about fancy clipboard managers is that they may possibly inject their own code into running apps and/or globally hook certain low level windows system functions.

Worth disabling them one by one...

ps. What the others apart from CopyQ?
pps. https://copyq.readthedocs.io/en/latest/ ... le-logging

fitnerd
Posts: 51
Joined: Wed Nov 20, 2019 7:19 am

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by fitnerd » Mon Jan 27, 2020 11:38 am

Thank you for the CopyQ logging tip! Might start using it instead of my own implementation.

The other one is an old, obscure ClCl (www.nakka.com). But they do not seem to be the problem, I exited both of them, as well as a few other programs, which I thought could have something to do with the clipboard, and the slowness was still there. Also, the stack trace did show the "user32.dll!AddClipboardFormatListener" even though the clipboard-related apps were no longer running.

I managed to compile TDL 7.2 on VS2017 (albeit using VS2015 Toolset and Targeting Windows 10 SDK) and ran it in debug mode. Strangely,while the slowdown was still there, it seemed a bit faster and there was no "AddClipboardFormatListener" to be seen anywhere (I did pause debugging a couple of times after hotting Enter in the combobox).

I did however notice a potential issue that could be responsible for the slowdown in the way the code is executing. Please do not take it as a criticism at all, unlike me, you being the author know the code and the reasons behind it, - I just wanted to point out my observation, which may not be correct / justified...

In any case, the long story short is that it looks like on every edit (via keyboard as I described) of any drop-down type field (whether built-in, or custom), i.e. the ones using CAutoComboBox, TDL updates all such comboboxes in the FilterBar - "CToDoListWnd::RefreshFilterBarControls(int bClearCheckboxHistory) Line 8043", checking all their items in a loop and doing somewhat expensive operations.

Clearly, if a new item is indeed added (like new category or tag or user item), the Filter Bar should be updated to reflect that. But, first of all, in the vast majority of my cases I never add a new item, I simply type-in the already existing item, and so perhaps the code could be rewritten a bit so that it takes a less expensive path, i.e. avoiding the Refresh of Filter Bar altogether, since nothing was changed. Secondly, even when the new item is indeed added, is it possible to only refresh the corresponding combobox in the Filter Bar (instead of refreshing all of them)?

Many of my lists have anywhere from 5 to 10 combobox-based attributes (including the built-in ones like category), and each can easily have anywhere from 10 to 100 items. Some may have even more. And so, if one every edit (after hitting enter) it is doing something with 1000+ items, it adds up. Not to mention that I typically have 10 task lists open at a time in every instance of TDL (not that it should have an effect I suppose).

Hope it helps. Once again thank you for looking into this and providing aid!

User avatar
abstr
Site Admin
Posts: 366
Joined: Sun Jul 28, 2019 12:22 pm

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by abstr » Mon Jan 27, 2020 11:48 pm

>> if one every edit (after hitting enter) it is doing something with 1000+ items, it adds up

That's a good point, I'll look into it for 7.3. Could you possibly send me a copy of your tasklist, but with all the tasks deleted, because it sounds like my test with just your categories was not very representative...

One more thing worth testing just to help with my understanding:

Do everything as before but instead of hitting <return> to complete the combo edit, just click on the task tree instead. Both these actions trigger CAutoComboBox::HandleReturnKey() so if the delay is still there it really does look like my code is the issue...

User avatar
abstr
Site Admin
Posts: 366
Joined: Sun Jul 28, 2019 12:22 pm

Re: Slowness / High CPU Usage when typing in Categories and Tags

Post by abstr » Sun Feb 02, 2020 12:08 am

Hi fitnerd

I've implemented a fix for this in 8.0.A9. It would be very helpful if you could verify that this fixes the issue for you.

Locked