Windows 10 マシンでメモリ リークが発生しています。問題の原因となっているプロセス (WPF アプリケーション) から取得したダンプを調査したところ、「MS.Internal.Automation.SynchronizedInputProviderWrapper」の多くのインスタンスと、基本的にほとんどのオブジェクトが保持されていることがわかりました。このタイプは、ガベージ コレクションではなくメモリを参照していました。
私は dotMemory (インスタンスのキー保持パス)、Visual Studio 2019 (ダンプ比較用)、および WinDbg をさらに調査するために使用しています。
このスタックオーバーフローの回答によると: UIAutomation メモリの問題
Win 8 RT および Windows 2012 サーバーの問題を修正するロールアップです: https://support.microsoft.com/en-us/help/2885482/memory-leak-when-using-ui-automation-in-windows- 8
Microsoftによると:このリンクを参照してください
UI オートメーション フレームワークを使用する複数のアプリケーションが Windows 8 ベースのコンピューターで同時に実行されている場合、メモリ リークが発生し、CPU 使用率が高くなります。
また、Windows 10 でも同じ問題が発生する可能性があると思いますが、この問題を修正する修正プログラムまたはロールアップが見つかりません。
アップデート:
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
ありがとう