У меня утечка памяти на машине Windows 10, и после исследования некоторого дампа, взятого из процесса, вызывающего проблему (приложение WPF), я обнаружил много экземпляров «MS.Internal.Automation.SynchronizedInputProviderWrapper» и В основном этот тип ссылается на большинство объектов, хранящихся в памяти, а не на сборщик мусора.
Я использовал dotMemory (путь хранения ключей экземпляров), Visual Studio 2019 (для сравнения дампов) и WinDbg для дальнейшего исследования.
![enter image description here](https://i.stack.imgur.com/55XmL.png)
According to this stackoverflow answer:
Проблема с памятью UIAutomation
Это накопительный пакет, исправляющий проблему на сервере Win 8 RT и windows 2012: https://support.microsoft.com/en-us/help/2885482/memory-leak-when-using-ui-automation-in-windows-8
И согласно Microsoft: см. Эту ссылку
Когда несколько приложений, использующих среду автоматизации пользовательского интерфейса, работают одновременно на компьютере на базе Windows 8 происходит утечка памяти и высокая загрузка ЦП.
И я думаю, что это может быть та же проблема на Windows 10 als o но не могу найти исправление или накопительный пакет, устраняющий эту проблему.
Обновление:
Я провел еще один анализ с помощью SuperDump и нашел возможное объяснение утечки памяти, но я не могу интерпретировать стек вызовов:
clr!EEHeapAlloc+2c ntdll!RtlAllocateHeap
clr!EEHeapAllocInProcessHeap+5b clr!EEHeapAlloc
clr!ClrAllocInProcessHeap+23
clr!operator new+14 clr!ClrAllocInProcessHeap
clr!ComCallWrapper::CreateWrapper+1ce clr!operator new
clr!ComCallWrapper::InlineGetWrapper+24 clr!ComCallWrapper::CreateWrapper
clr!GetComIPFromObjectRef+22e clr!ComCallWrapper::InlineGetWrapper
clr!MarshalObjectToInterface+3a clr!GetComIPFromObjectRef
clr!StubHelpers::InterfaceMarshaler__ConvertToNative+d8 clr!MarshalObjectToInterface
0x4AA1110 clr!StubHelpers::InterfaceMarshaler__ConvertToNative
PresentationCore_ni!System.Windows.Media.DashStyle.OffsetPropertyChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)$##6001EA6 <PERF> (PresentationCore_ni+0x19cca0)
clr!COMToCLRDispatchHelper+6b
clr!COMPlusFrameHandlerRevCom
UIAutomationCore!RichEditObjectProxy::QueryInterface+6139
UIAutomationCore!NullInvoker::CallTarget
UIAutomationCore!InProcClientAPIStub::UiaNode_GetPatternProvider
UIAutomationCore!RichEditObjectProxy::QueryInterface+6116
UIAutomationCore!InProcClientAPIStub::InvokeInProcAPI+5eb
UIAutomationCore!UiaNode::CrossProcess_GetPatternProvider+49 UIAutomationCore!InProcClientAPIStub::InvokeInProcAPI
UIAutomationCore!RemoteUiaNodeStub::Incoming_GetPatternProvider+8c UIAutomationCore!UiaNode::CrossProcess_GetPatternProvider
UIAutomationCore!RemoteUiaNodeStub::OnMessage+b8
UIAutomationCore!InvokeOnCorrectContext_Callback+272
UIAutomationCore!NullInvoker::CallTarget+2b UIAutomationCore!InvokeOnCorrectContext_Callback
UIAutomationCore!ProcessIncomingRequest+4f6
UIAutomationCore!ChannelBasedServerConnection::OnData+dd
UIAutomationCore!ReadWriteChannelInfo::Service+18a UIAutomationCore!ChannelBasedServerConnection::OnData
UIAutomationCore!OverlappedIOManager::IoThreadProc+b3 UIAutomationCore!ReadWriteChannelInfo::Service
UIAutomationCore!OverlappedIOManager::StaticIoThreadProc+d UIAutomationCore!OverlappedIOManager::IoThreadProc
kernel32!BaseThreadInitThunk+19
ntdll!__RtlUserThreadStart+2f
ntdll!_except_handler4
ntdll!FinalExceptionHandlerPad22
UIAutomationCore!OverlappedIOManager::StaticIoThreadProc
Спасибо