为什么我的WPF应用程序在某些系统上运行缓慢

Fro*_*ain 8 .net wpf performance

我在某些系统上的WPF应用程序的UI性能有问题.在我的开发人员系统上,它在某些其他系统上执行得很好但是性能非常糟糕.例如,当移动分割器,调整FlowDocuments的大小或将鼠标悬停在按钮上时,会出现问题.

性能差异与计算机明显的"规格"没有直接关系.该应用程序在上网本(Intel Atom N550,1GB RAM,Windows性能指数:2.0)上运行正常,但在桌面计算机上不行(I7 2600,8GB Ram,ATI Radeon HD 5700,Windows性能指数:7.4).两个系统都运行Windows 7.该应用程序使用.NET 4.0构建.我试图使用RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly强制进行软件渲染.然而,这没有任何区别.

是什么导致了这个问题?我该如何解决?

fub*_*aar 8

这听起来可能是我们被吵闹的Wpf 4错误影响具有复杂Wpf可视树的应用程序.它在这个主题http://social.msdn.microsoft.com/Forums/en/windowsaccessibilityandautomation/thread/6c4465e2-207c-4277-a67f-e0f55eff0110中进行了讨论.它甚至影响了VS 2010中的Workflow 4设计器 - 请参阅http://social.msdn.microsoft.com/Forums/en/wfprerelease/thread/1f20c37f-1b9e-4b6d-904f-a6b518e4187a.根据该线程,您可能想尝试一个修补程序:http://support.microsoft.com/kb/2484841

如果这是问题,可以通过在应用程序挂起/断续时将调试器附加到应用程序并查看是否在堆栈上看到大量UiAutomation InvalidateAutomationAncestors帧来获得一个好主意.