Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
110 kb的.NET 4.0应用程序需要10秒的冷启动时间,这是不可接受的!_.net_Wpf_Performance_Startup - Fatal编程技术网

110 kb的.NET 4.0应用程序需要10秒的冷启动时间,这是不可接受的!

110 kb的.NET 4.0应用程序需要10秒的冷启动时间,这是不可接受的!,.net,wpf,performance,startup,.net,Wpf,Performance,Startup,我正在为我的应用程序使用.NET 4.0客户端配置文件,我运行一个双核,带有4 GB Ram和一个快速硬盘 一开始没什么大不了的,只是在wpf列表视图中显示一个通用列表 如何使装配的冷启动速度更快 我现在再次冷启动并在我的\obj\x86\Debug文件夹中运行windowsapplication.exe,我的硬盘运行得很快,花了10,5秒 怎么了 冷启动后的热启动耗时1秒 Java 6应用程序没有这个问题,完全不是为了比较 更新: 我删除了创建ViewModels时读取数据的所有方法 还有10

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

一开始没什么大不了的,只是在wpf列表视图中显示一个通用列表

如何使装配的冷启动速度更快

我现在再次冷启动并在我的\obj\x86\Debug文件夹中运行windowsapplication.exe,我的硬盘运行得很快,花了10,5秒

怎么了

冷启动后的热启动耗时1秒

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

更新:

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

还有10秒就要出现了。这不是从RAM读取数据的问题。问题是硬盘忙得很厉害,除了运行.NET4.0WPF应用程序外,它的声音从来没有这么大过

我不引用任何第三方dll

以下是我引用的程序集:

Microsoft.CSharp 演示文稿。核心 呈现框架 系统 系统核心 系统数据 System.Xaml 命名空间 System.Xml.Ling 窗台

更新2:

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

冷启动花了3秒钟(硬盘非常忙)

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

我现在很清楚情况:

我的申请没有什么可以让它变慢的。这只是第一个wpf应用程序加载与否

我想我会像AdobeReader那样做。将应用程序加速器。。。在autostart作为一个小型hello world wpf应用程序中…

可以用来预编译程序集。这应该会有帮助

编辑:
也许有一件事可以帮上忙。如果这是一个基于VisualStudio中“新wpf应用程序”模板的wpf应用程序,那么您的应用程序将引用一组您可能不使用的程序集。尝试从应用程序引用中删除所有未使用的程序集,看看是否有帮助。

这不正常,您是否连接到数据库或网络?等待一些操作系统资源?

.Net应用程序启动速度比本机编译的应用程序慢,但这听起来有些过分。可能会提供一些关于它正在等待什么的见解。

您可能想看看Jossef Goldberg的文章。

可能会,尽管我相信部分或全部JIT代码在第一次执行时会被缓存。应该是这样,但问题是如何使冷启动(即第一次运行应用程序)更快。只要应用程序在启动时没有太多功能,我认为除了ngen之外没有其他任何东西能帮上忙。小应用程序上的ngen会使冷启动变慢。要加载的DLL更大。您应该更具体地说明应用程序在初始化时所做的操作。我可以编写一个WPF应用程序,它更小,在初始化过程中可以计算阶乘,启动速度甚至比你的还要慢。@Venemo:正如我之前所说,我只是将一个硬编码的通用列表(包含30个实体)绑定到一个DataGrid。根本没有数据库访问!如果将DataGrid从等式中排除,会发生什么情况?问题之一是字体缓存服务必须在第一个WPF应用程序启动之前启动。请尝试hello world WPF应用程序(在其他空窗口中显示简单文本),然后查看启动所需的时间。如果速度太快,则说明你的应用程序做得很慢;如果速度太慢,则可能是CLR和WPF库造成的。