.net C#WPF第一次启动速度非常慢

.net C#WPF第一次启动速度非常慢,.net,wpf,performance,.net,Wpf,Performance,有人建议我只创建一个简单的wpf应用程序,用一个按钮来检查性能问题。 这是痛苦的缓慢启动只有第一次事件在体面的机器。 我已经在发布模式下构建了一个优化的可执行文件,但第一次大约是15秒,在此期间磁盘IO很高。。第二次运行速度不到1秒… 我相信这是太多的时间 我添加了一个文件app1.config <?xml version="1.0" encoding="utf-8" ?> <configuration> <runtime> <generat

有人建议我只创建一个简单的wpf应用程序,用一个按钮来检查性能问题。
这是痛苦的缓慢启动只有第一次事件在体面的机器。 我已经在发布模式下构建了一个优化的可执行文件,但第一次大约是15秒,在此期间磁盘IO很高。。第二次运行速度不到1秒…
我相信这是太多的时间

我添加了一个文件app1.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <generatePublisherEvidence enabled="false"/>
  </runtime>
</configuration>

app1不是应用程序的名称。。但是没有帮助


如果你从未运行过WPF应用程序,你知道在某些机器上该怎么做吗???

,因为启动应用程序会很痛苦。您可以通过在启动文件夹中运行任何WPF应用程序(无需显示窗口——只需参考一个窗口)来添加“快速启动”。这将确保dot net framework已完全加载,并且您的应用程序应加载得更快,尽管这会使启动速度减慢一点。

您可以使用它来加速应用程序的首次运行。

这是一个很好的主意。。。不过有点过火了。想象一下每个应用程序都能做到这一点。你只需要一个应用程序就能做到这一点,而且每个WPF应用程序的加载速度都会更快。许多应用程序使用这种方法——例如,java使用;微软Office、VMWare和其他许多公司也是如此。由于您所描述的确切问题,我们在商业应用程序中使用了这种方法,但我们是在服务中使用这种方法的。所以它可能是一个简单的服务,什么都不做?只是有一些框架参考?是的。我们使用了一行代码:windowwindow=newwindow();这就足以加载大多数WPF程序集,并大大加快了应用程序加载时间。我们一致认为这并不完美,微软应该提供正式的解决方案,但事实就是如此(我们与微软会面讨论……)。当您使用在服务上下文中运行的框架时,这尤其是一个问题,因为没有人在该上下文中运行WPF,所以第一次运行WPF可能需要很长时间。NGEN只会提供非常轻微的速度提升。大多数问题是,dotnet框架尚未加载。请注意,随后他运行程序的时间要快得多,但JIT仍然必须再次运行。