C#WPF应用程序启动非常慢

时间:2013-04-30 07:36:26

标签: c# wpf performance optimization

我写了一个简单的.net WPF应用程序(只包含2个小窗口),但它的启动速度太慢 - 大约10-20秒!

Profiler说:

  • Main->RunInternal(56%)
  • Main->RunInternal->ctor->LoadBaml(32%)

应用程序加载时间的最大部分 - 是Main->RunInternal函数的主体,这不是我的功能,我不知道它们是什么。 他们的执行时间能否以某种方式进行优化?

加载Baml标记需要32%的时间,但我的程序只有3个XAML文件,并且它们包含少于100行代码。 为什么这个动作需要这么长时间?

在问我读过并试过这些技巧之前,他们并没有帮助我:

那么,我怎样才能加快申请的开始时间?

感谢。

PS。我已经在两台类似的计算机上测试了这个程序,结果是一样的。

3 个答案:

答案 0 :(得分:4)

请看上面评论中提到的文章。

我认为它是8,(Authenticode),它取决于你引用的程序集

答案 1 :(得分:1)

我有同样的问题。谷歌与RunInternal没有任何关系。

然后我尝试备份以前的代码并删除程序集和文件,直到只剩下一个窗口。

然后它工作 - 启动时间从10秒缩短到1秒!

这一次,探查器只显示 System.Windows.Application.Run()而不是RunInternal

对于这台电脑来说,即使在重新导入错误(慢速)版本后,它也能正常工作,这一点非常奇怪!虽然我的笔记本电脑没有经过上面的修复仍然启动程序10秒以上。

答案 2 :(得分:1)

我的问题是项目本身位于网络驱动器上。因此,该应用必须往返于距离我的位置500英里的目标驱动器上进行一次完整的往返,然后编译所有内容-因此,肯定要花很多时间。我查看了其他问题,但这是我的情况。

在尝试任何其他操作之前,请确保您的项目位于本地