WPF应用程序冻结

时间:2009-08-06 23:21:18

标签: wpf performance debugging profiling

我有点迷失在这里,我不知道该怎么做

我有一个问题,我不知道它的来源是什么。 我们有一个大型的wpf应用程序,它构建类似于prism(复合应用程序) 实际上我们正在使用大量的棱镜库。 我写了一个模块来替换现有的模块。 现在应用程序正在加载我的模块,而不是旧模块。

我开始注意到,使用新模块,有时候应用程序会在没有任何响应的情况下冻结20-30秒,然后它会顺利运行。

冻结不一致,并且没有导致它的模式或具体原因。

我怀疑这可能是导致冻结的模块。 但与此同时,许多其他开发人员也为该应用程序引入了新代码。

我的问题是有办法追踪冻结吗? 有没有办法比较旧模块和我写的新模块?

我可以使用我的模块运行应用程序,并跟踪应用程序,然后我可以更改配置文件以加载旧模块。 有没有办法比较两者?

我应该进行分析吗? 如果分析会有所帮助,那么我应该寻找什么? 任何其他工具都可以提供帮助吗?

非常感谢您的回复

1 个答案:

答案 0 :(得分:1)

听起来你正在UI线程上进行长时间运行。你是从主线程进行任何数据库/ webservice调用吗?我认为最容易做的事情之一是在调试器中运行它,当它冻结时,点击“暂停”按钮。 Visual Studio将在当前位置暂停执行,您可以检查所花费的时间。

如果问题不是很明显,我肯定会开始分析应用程序来跟踪它。