一个110 kb的.NET 4.0应用程序需要10秒才能进行冷启动,这是不可接受的!

时间:2010-05-19 21:09:38

标签: .net wpf performance startup

我正在为我的应用程序使用.NET 4.0客户端配置文件,我使用4 GB Ram和快速硬盘运行双核。

在wpf listview中只显示一个通用List,开始时没什么大不了的。

如何让装配冷启动更快?

我现在又做了一个冷启动并在我的\ obj \ x86 \ Debug文件夹中运行windowsapplication.exe,我的硬盘像地狱一样运行,花了10,5秒???

有什么问题?

寒冷之后的温暖启动需要1秒钟。

Java 6应用程序没有那个问题,根本不比较......

更新

我删除了创建ViewModel时读取数据的所有方法。

还有10秒钟出现。它不是从RAM读取数据的问题。问题是繁忙的硬盘除了运行.net 4.0 wpf应用程序之外从未如此响亮......

我没有引用任何第三方dll`s。

这些是我引用的程序集:

Microsoft.CSharp Presentation.Core PresentationFramework 系统 System.Core程序 System.Data System.Xaml 的System.Xml System.Xml.Ling WindowsBase

更新2:

我现在从头开始创建一个.NET 4.0 wpf项目,只有一个空窗口和绿色背景; - )

冷启动需要3秒钟(硬盘非常繁忙)

然后我运行我的其他wpf应用程序,它花了10秒钟。现在只需1.5秒即可显示在屏幕上。

我现在清楚了解情况:

我的应用程序没有什么可以使它变慢。它只是加载了第一个wpf应用程序。

我想我会像ADOBE Reader那样做。将应用程序加速器......放在自动启动中,这是一个小型的hello world wpf app ...

4 个答案:

答案 0 :(得分:4)

您可以使用ngen预编译程序集。这应该会有所帮助。

编辑: 可能有一件事可以提供帮助。如果这是基于visual studio中“新wpf应用程序”模板的wpf应用程序,则您的应用程序将引用一些您可能不使用的程序集。尝试从应用程序引用中删除所有未使用的程序集,看看是否有帮助。

答案 1 :(得分:2)

你可能想看看Jossef Goldberg的this MSDN blog post

答案 2 :(得分:1)

这不正常,您是否建立了与数据库或某个网络的连接?等待一些OS资源?

答案 3 :(得分:1)

与原生编译的应用程序相比,.Net应用程序启动缓慢,但这听起来过分。 Procmon可能会对其所等待的内容提供一些见解。