2011-09-16 40 views
5

我有以下的,很奇怪的问题,在生产环境中我的WPF应用程序:WPF应用程序完全冻结1分钟

  • 的客户报告的程序是极其缓慢。有时整个接口会冻结约一分钟
  • 在此“冻结”期间,没有CPU活动。其他程序仍然可以正常工作
  • 当用户物理上位于PC后面时,总是会出现此问题。也就是说,当我使用RDP或TeamViewer登录时,问题很难重现,尽管我已经看到它发生了
  • 更令人奇怪的是:该公司拥有大约40台具有相同硬件的PC。只有其中5人出现此问题(PC:HP Compaq 6000 Pro小外形尺寸)

我将在几天内访问该公司,以便对PC具有物理访问权限。

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

你会如何诊断这样的问题?哪些工具?任何提示或指针?

+1

电脑没有3D芯片组?所以他们没有加速生成wpf? – ykatchou

+2

我想知道是否做了类似这样的事情:http://blogs.technet.com/b/markrussinovich/archive/2010/12/07/3373406.aspx和这个:http://blogs.technet.com/b/ markrussinovich/archive/2010/01/13/3305263.aspx将有助于诊断问题。 – Ray

+0

你使用的是什么版本的框架?应用程序的后端是什么样的?它是否访问网络资源,如数据库,Web服务等?事件日志中是否有任何内容? – RQDQ

回答

1

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

“我想知道是否做了类似这样的事情:blogs.technet.com/b/markrussinovich/archive/2010/12/07/...和这个:blogs.technet.com/b/markrussinovich/archive/2010/01/13/...将有助于诊断问题 - Ray 9月16日9:32“

进程监视器指出,那么当应用程序是闲置,有与Direct3D相关的注册表的各种读取。这使得视频卡驱动程序可疑。我已经删除了驱动程序并安装了更新的版本(我们之前已经尝试过,但现在有更新的更新)。此更新解决了该问题。

1

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

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

通过设置代理为空,一切都会好起来的。

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

+0

我们有一个类似的代理相关问题,但在我们的案例中,我们没有使用Web服务。相反,由于网络基础架构的设置方式,内部某些东西试图访问网络,导致某种代理超时。我认为我们修改了一个machine.config设置来最终修复它。 – Justin

+0

我们不使用Web服务或任何相关的东西,在我们的情况下,这不是问题。但谢谢你的建议 –

-1

如果问题是WPF相关的,你应该检查常见的性能瓶颈一样昂贵的数据绑定或经常发生,并且在你的应用涉及大量处理UI事件。 在这种情况下,profiler是非常宝贵的工具,一些好的工具是SmartBear软件的Red Gate性能分析器和AQTime。 另一个很好的工具是Snoop,WPF Spy Utility,它允许分析UI对象树。如果这棵树有不必要的对象,请考虑修剪。