减少从网络驱动器运行的.NET Windows Form应用程序的启动时间

时间:2020-03-06 14:27:29  来源:igfitidea点击:

我有一个简单的.NET 2.0 Windows窗体应用程序,该应用程序通过网络驱动器运行(例如\ MyServer \ MyShare \ app.exe)。这是非常基本的,仅加载最少的.NET库。但是,它仍然需要〜6-10秒才能加载。人们认为某些小应用程序花很长时间加载肯定是有问题的。

对于提高启动速度有什么建议吗?

解决方案

为应用程序设置Clickonce,以便将其部署到本地计算机。

我们可以像Microsoft Office(和我认为的Adobe)一样作弊,并在"启动"组中添加一个应用程序,告诉该应用程序加载然后立即卸载。这样,DLL就会在用户尝试启动应用程序时预先缓存在内存中。只能抓住:我不确定是否可以通过网络文件使用这种方式-否则,这可能是启动缓慢的原因(例如,如果出现以下情况,我们总是在进行冷启动而可能进行热启动从本地计算机运行)。

试用Sysinternals Process Explorer。它具有" JIT中的%时间"列。如果该数目很大,则可以在应用程序上运行ngen。如果不是,则可能是网络连接速度慢。 CodeGuru有一个使用ngen的教程。

为了加快加载时间,我们可以编译一个小的启动应用程序,并让该应用程序在运行时从bin文件夹外部的库中加载程序集。

http://support.microsoft.com/kb/837908

确定权衡NGEN可行性的JIT时间当然是一个很好的起点。我也同意那些希望通过使用另一个入口点然后加载程序集来模糊加载时间的人。通常,速度与实际速度的对比可改善用户体验。