WPF应用程序完全冻结1分钟

时间:2011-09-16 09:25:29

标签: c# .net wpf performance

我的生产环境中的WPF应用程序存在以下非常奇怪的问题:

  • 客户报告程序非常慢。有时候 整个界面冻结约一分钟
  • 在此“冻结”期间,没有CPU活动。其他程序仍然可以正常工作
  • 当用户身在PC后面时,总是会出现此问题。也就是说,当我使用RDP或TeamViewer登录时,问题很难再现,尽管我已经看到它发生了
  • 更奇怪的是:这家公司有大约40台具有相同硬件的PC。只有其中5个出现此问题(PC:HP Compaq 6000 Pro小型)

我将在几天内访问该公司,以便实际访问PC。

有一点需要注意:这个程序在大约1000家公司中运行没有问题,这让我觉得硬件有问题。

您如何诊断此类问题?哪些工具?任何提示或指示?

3 个答案:

答案 0 :(得分:1)

我注意到在我们的实验室中有类似的行为。该应用程序经常冻结,但无论是CPU还是网络活动。在旧机器和新机器上的许多PC上都有相同的行为。

最后我明白了。由于应用程序使用Web服务,并且 - 对于默认 - 代理是“自动”检测,因此发现会冻结所有内容几秒钟。

通过将代理设置为null,一切正常。

http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx

答案 1 :(得分:1)

感谢大家的建议。我尝试了各种各样的。在这种情况下,雷的评论最有帮助,他说:

“我想知道是否做了类似的事情:blogs.technet.com/b/markrussinovich/archive/2010/12/07/ ...以及此:blogs.technet.com/b/markrussinovich/archive/ 2010/01/13 / ...将有助于诊断问题。 - Ray Sep 16 at 9:32“

Process Monitor指出当应用程序空闲时,注册表中有与Direct3D相关的各种读取。这使得显卡驱动程序可疑。我已经删除了驱动程序并安装了一个较新的版本(我们之前已经尝试过这个版本,但现在还有一个更新的版本)。此更新修复了此问题。

答案 2 :(得分:-1)

如果问题与WPF有关,则应检查常见性能瓶颈,例如频繁发生的昂贵数据绑定或UI事件,并在您的应用中涉及繁重的处理。 在这种情况下,分析器是一个非常宝贵的工具,一些好的工具是Red Gate Performance Profiler和SmartBear Software的AQTime。 另一个不错的工具是Snoop,WPF Spy Utility,它允许分析UI对象树。如果此树具有不必要的对象,请考虑修剪。