我有点迷失在这里,我不知道该怎么做
我有一个问题,我不知道它的来源是什么。 我们有一个大型的wpf应用程序,它构建类似于prism(复合应用程序) 实际上我们正在使用大量的棱镜库。 我写了一个模块来替换现有的模块。 现在应用程序正在加载我的模块,而不是旧模块。
我开始注意到,使用新模块,有时候应用程序会在没有任何响应的情况下冻结20-30秒,然后它会顺利运行。
冻结不一致,并且没有导致它的模式或具体原因。
我怀疑这可能是导致冻结的模块。 但与此同时,许多其他开发人员也为该应用程序引入了新代码。
我的问题是有办法追踪冻结吗? 有没有办法比较旧模块和我写的新模块?
我可以使用我的模块运行应用程序,并跟踪应用程序,然后我可以更改配置文件以加载旧模块。 有没有办法比较两者?
我应该进行分析吗? 如果分析会有所帮助,那么我应该寻找什么? 任何其他工具都可以提供帮助吗?
非常感谢您的回复
答案 0 :(得分:1)
听起来你正在UI线程上进行长时间运行。你是从主线程进行任何数据库/ webservice调用吗?我认为最容易做的事情之一是在调试器中运行它,当它冻结时,点击“暂停”按钮。 Visual Studio将在当前位置暂停执行,您可以检查所花费的时间。
如果问题不是很明显,我肯定会开始分析应用程序来跟踪它。