分析内存转储以提高CPU使用率显示了对Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher的调用

问题描述 投票:0回答:1

我正在分析内存转储的CPU使用率很高,但是我看到的是,大多数失控线程都显示0天0:05:48.921的恒定时间,即第二和毫秒的更改时间,大多数都称为Microsoft Practices EnterpriseLibrary ConfigurationChangeWatcher。我们正在使用MS Ent Lib 6进行日志记录。我不明白这与CPU使用率高有什么关系,谁能帮助我分析转储并提供一些帮助。

子SP IP呼叫站点000000581c2ddeb0 00007ffb58790b2a [GCFrame:000000581c2ddeb0]000000581c2ddf80 00007ffb58790b2a [GCFrame:000000581c2ddf80]000000581c2ddfb8 00007ffb58790b2a [HelperMethodFrame:000000581c2ddfb8] System.Threading.Monitor.Enter(System.Object)000000581c2de0b0 00007ffaf0046f8a System.Threading.TimerQueueTimer.Change(UInt32,UInt32)000000581c2de120 00007ffaf0ab0047 System.Timers.Timer.set_Enabled(布尔值)000000581c2de180 00007ffaf1bf3edb Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher.pollTimer_Elapsed(System.Object,System.Timers.ElapsedEventArgs)000000581c2de1d0 00007ffaf1bf3ea1 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher.pollTimer_Elapsed(System.Object,System.Timers.ElapsedEventArgs)000000581c2de220 00007ffaf1bf395f System.Timers.Timer.MyTimerCallback(System.Object)000000581c2de2a0 00007ffaf049e7b2 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔值)000000581c2de370 00007ffaf049cb67 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔值)000000581c2de3a0 00007ffaf0a13c69 System.Threading.TimerQueueTimer.CallCallback()000000581c2de400 00007ffaf0a1390a System.Threading.TimerQueueTimer.Fire()000000581c2de450 00007ffaf0a1c079 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()000000581c2de4b0 00007ffaf0a19c48 System.Threading.ThreadPoolWorkQueue.Dispatch()000000581c2de928 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581c2de928]000000581c2deab8 00007ffb4f3f4073 [ContextTransitionFrame:000000581c2deab8]000000581c2decd8 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581c2decd8]

子SP IP呼叫站点000000581b73e1e8 00007ffb5879195a [InlinedCallFrame:000000581b73e1e8] Microsoft.Win32.Win32Native.GetFileAttributesEx(System.String,Int32,WIN32_FILE_ATTRIBUTE_DATA ByRef)000000581b73e1e8 00007ffaefe84a3a [InlinedCallFrame:000000581b73e1e8] Microsoft.Win32.Win32Native.GetFileAttributesEx(System.String,Int32,WIN32_FILE_ATTRIBUTE_DATA ByRef)000000581b73e1c0 00007ffaefe84a3a DomainNeutralILStubClass.IL_STUB_PInvoke(System.String,Int32,WIN32_FILE_ATTRIBUTE_DATA ByRef)000000581b73e280 00007ffaefe83d92 System.IO.File.FillAttributeInfo(System.String,WIN32_FILE_ATTRIBUTE_DATA ByRef,布尔值,布尔值)000000581b73e2f0 00007ffaefe83bc7 System.IO.File.InternalExists(System.String)000000581b73e350 00007ffaefe81544 System.IO.File.InternalExistsHelper(System.String,Boolean)000000581b73e390 00007ffaf0aafe51 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher.GetCurrentLastWriteTime()000000581b73e3c0 00007ffaf1bf3e18 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher.pollTimer_Elapsed(System.Object,System.Timers.ElapsedEventArgs)000000581b73e410 00007ffaf1bf395f System.Timers.Timer.MyTimerCallback(System.Object)000000581b73e490 00007ffaf049e7b2 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔值)000000581b73e560 00007ffaf049cb67 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔值)000000581b73e590 00007ffaf0a13c69 System.Threading.TimerQueueTimer.CallCallback()000000581b73e5f0 00007ffaf0a1390a System.Threading.TimerQueueTimer.Fire()000000581b73e640 00007ffaf0a1c079 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()000000581b73e6a0 00007ffaf0a19c48 System.Threading.ThreadPoolWorkQueue.Dispatch()000000581b73eb18 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581b73eb18]000000581b73eca8 00007ffb4f3f4073 [ContextTransitionFrame:000000581b73eca8]000000581b73eec8 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581b73eec8]

我在整个调用堆栈中都看到了这种模式。

.net multithreading cpu-usage enterprise-library-6
1个回答
0
投票

我也遇到计时器问题,您是否能够找出问题的根本原因?

© www.soinside.com 2019 - 2024. All rights reserved.