2013-04-30 213 views
10

我已经写了一个简单的.net WPF应用程序(仅包含2个小窗口),但其启动速度太慢 - 大约10-20秒!C#WPF非常缓慢的应用程序启动

探查说:

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

最大的应用负载部分时间 - 是Main->RunInternal功能的身体,这ISN”我的功能,我不知道他们做了什么。 他们的执行时间可以被优化吗?

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

问我已阅读并尝试了这些技巧,但他们并没有帮助我之前:

所以,我怎么能加快启动时间我的申请?

谢谢。

PS。我在两台类似的电脑上测试过这个程序,结果是一样的。

+1

如果没有真正的环境,性能优化并不是真正的客观事物。除非你提供一些代码,否则我担心没有很多人能够帮助你。 – Sisyphe 2013-04-30 07:40:59

+1

是否存在绑定错误?他们可以显着减慢你的应用程序。 – 2013-04-30 07:41:11

+0

没有任何绑定错误和警告... – 2013-04-30 07:47:14

回答

3

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

我想这是8,(验证码),这取决于什么组件您引用

+2

我按照提及的文章中的itme 8建议的那样进行了测试,它将我的应用程序启动时间从16 -20s到3s。 – Felix 2013-07-26 07:55:17

0

我有同样的问题。 Google和RunInternal一点关系都没有。

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

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

这一次,分析器仅表现为System.Windows.Application.Run()代替RunInternal

这是非常奇怪的是,这台计算机,即使经过重新导入窃听(慢)版本,它正确工作!而我的笔记本电脑,没有通过上述定影仍然启动程序10多秒。