我写了一个简单的.net WPF
应用程序(只包含2个小窗口),但它的启动速度太慢 - 大约10-20秒!
Profiler说:
Main->RunInternal
(56%)Main->RunInternal->ctor->LoadBaml
(32%)应用程序加载时间的最大部分 - 是Main->RunInternal
函数的主体,这不是我的功能,我不知道它们是什么。 他们的执行时间能否以某种方式进行优化?
加载Baml标记需要32%的时间,但我的程序只有3个XAML文件,并且它们包含少于100行代码。 为什么这个动作需要这么长时间?
在问我读过并试过这些技巧之前,他们并没有帮助我:
那么,我怎样才能加快申请的开始时间?
感谢。
PS。我已经在两台类似的计算机上测试了这个程序,结果是一样的。
答案 0 :(得分:4)
请看上面评论中提到的文章。
我认为它是8,(Authenticode),它取决于你引用的程序集
答案 1 :(得分:1)
我有同样的问题。谷歌与RunInternal没有任何关系。
然后我尝试备份以前的代码并删除程序集和文件,直到只剩下一个窗口。
然后它工作 - 启动时间从10秒缩短到1秒!
这一次,探查器只显示 System.Windows.Application.Run()而不是RunInternal
对于这台电脑来说,即使在重新导入错误(慢速)版本后,它也能正常工作,这一点非常奇怪!虽然我的笔记本电脑没有经过上面的修复仍然启动程序10秒以上。
答案 2 :(得分:1)
我的问题是项目本身位于网络驱动器上。因此,该应用必须往返于距离我的位置500英里的目标驱动器上进行一次完整的往返,然后编译所有内容-因此,肯定要花很多时间。我查看了其他问题,但这是我的情况。
在尝试任何其他操作之前,请确保您的项目位于本地。