.net - 一个 110 kb 的 .NET 4.0 应用程序需要 10 秒的冷启动时间,这是 Not Acceptable !

标签 .net wpf performance startup

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

一开始没有做任何大的事情,只是在 wpf ListView 中显示一个通用列表。

我怎样才能使我的组件冷启动更快?

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

怎么了?

冷启动后的热启动需要 1 秒。

Java 6 应用程序没有那个问题,完全不是为了比较......

更新:

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

还有10秒出现。从RAM读取数据不是问题。问题是非常繁忙的硬盘,除了运行 .net 4.0 wpf 应用程序之外,它从来没有那么响亮......

我不引用任何 3rd 方 dll`s。

这些是我引用的程序集:

微软CSharp
演示文稿.核心
演示框架
系统
系统核心
系统数据
系统文件
系统文件
系统.XML.Ling
视窗基地

更新 2:

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

冷启动耗时 3 秒(硬盘非常忙)

然后我运行我的另一个 wpf 应用程序,它花了 10 秒钟。现在只需要 1.5 秒就可以显示在屏幕上。

现在的情况对我来说很清楚:

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

我想我会像 ADOBE Reader 那样做。在自动启动中放置一个应用程序加速器……是一个小的 hello world wpf 应用程序……

最佳答案

您可以使用 ngen预编译您的程序集。那应该有帮助。

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

关于.net - 一个 110 kb 的 .NET 4.0 应用程序需要 10 秒的冷启动时间,这是 Not Acceptable !,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2869444/

相关文章:

.net - "Oh noes!"南希测试异常

.Net Web.Config 转换,替换整个 ConnectionString 部分

c# - 什么是申请和流程?

wpf - 在复杂、解耦的 WPF 应用程序上使用 Expression Blend 的策略是什么?

java - 多维数组转字符串(适用于android的SQLite)

c# - 从内存而不是磁盘向 CompilerParameters ReferencedAssemblies 提供程序集?

c# - PropertyChanged 影响多个属性

wpf - 从 WPF/Silverlight 动画创建视频

iphone - 在 iPhone 应用程序中保存数据并下次读取数据的最快方法是什么?

JavaFX 与较大的 Canvas 尺寸存在巨大的滞后