16

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

Profiler 说:

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

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

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

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

那么,我怎样才能加快我的应用程序的启动时间呢?

谢谢。

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

4

3 回答 3

4

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

我想它是 8,(Authenticode),这取决于您引用的程序集

于 2013-04-30T12:33:07.573 回答
1

我也有同样的问题。带有 RunInternal 的 Google 什么也没给我。

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

然后它起作用了——启动时间从 10 秒缩短到 1 秒!

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

很奇怪,对于这台电脑,即使重新导入了bug(慢)版本,它也能正常工作!而我的笔记本电脑,没有通过上面的修复,仍然启动程序 10 多秒。

于 2013-05-17T05:29:33.843 回答
1

我的问题是项目本身位于网络驱动器上。因此,该应用程序必须往返于距离我所在位置 500 英里的目的地驱动器并返回,编译所有内容 - 所以肯定需要花费所有时间。我查看了其他问题,但这是我的情况。

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

于 2018-09-25T16:00:05.287 回答