約30分鐘後,我的WPF應用程序使用高CPU使用率,然後我打破了應用程序,找出哪些代碼花費高CPU使用率,但我什麼都沒有。如何減少WPF應用程序的CPU使用率?
Visual Studio 2008中不能顯示當前運行的代碼,但我發現這個在「調用棧」面板:
[In a sleep, wait, or join] mscorlib.dll!System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext) + 0x8f bytes System.dll!System.Net.TimerThread.ThreadProc() + 0x2f9 bytes mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x66 bytes mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x6f bytes mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes
這是什麼?高CPU使用率有什麼問題? 以及如何降低CPU使用率?
我使用性能剖析了WPF工具來發現哪些事件或元素採取的CPU使用率很高,後來我們發現:蜱(TimeManager.Tick())是大約40%的CPU使用率的應用程序。哪些事件會調用TimeManager.Tick?如何減少它? – 2009-05-12 06:44:05