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

我有一个简单的 .NET 2.0 Windows 窗体应用程序,它在网络驱动器上运行(例如 MyServerMyShareapp.exe)。它非常基础,仅加载最低限度的 .NET 库。然而,加载仍然需要大约 6-10 秒。人们认为这么小的应用程序加载时间这么长,一定是出了什么问题。

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

请先 登录 后评论
本文连接: http://www.china-sunrider.com.cn/question/10849
source: https://stackoverflow.com/questions/104815

5 个回答

Eric Haskins

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

请先 登录 后评论
DougN

您可以像 Microsoft Office(我认为还有 Adob​​e)一样作弊,并在启动组中添加一个应用程序,告诉该应用程序加载然后立即卸载。这样,当用户尝试启动应用程序时,DLL 就会预先缓存在内存中。唯一要注意的是:我不完全确定它是否能以这种方式处理网络文件——如果不能,这可能是启动缓慢的原因(即你总是进行冷启动而不是可能的热启动)如果从本地计算机运行)。

请先 登录 后评论
hometoast

尝试Sysinternals Process Explorer。它有一个“% time in JIT”列。如果该数字很大,您可以运行 ngen在您的申请上。如果不是,则可能是网络连接速度慢。 CodeGuru 有一个关于ngen 使用的教程。

请先 登录 后评论
Claus Thomsen

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

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

请先 登录 后评论
Mike L

确定 JIT 时间来衡量 NGEN 的可行性无疑是一个很好的起点。我也同意那些希望通过使用另一个入口点来加载程序集来捏造加载时间的人的观点。通常,改善用户体验的是外观速度实际速度

请先 登录 后评论
user contributions licensed under CC BY-SA.