减少运行网络驱动器的.NET Windows窗体应用程序的启动时间
-
01-07-2019 - |
题
我有一个简单的.NET 2.0 Windows窗体应用程序,它运行在网络驱动器上(例如\ MyServer \ MyShare \ app.exe)。它非常基础,只加载最小的.NET库。但是,加载仍需要约6-10秒。人们认为应该这么小的应用程序需要很长时间才能加载。
有没有提高启动速度的建议?
解决方案
试用 Sysinternals Process Explorer 。它具有“JIT中的%时间”列。如果该数字很大,您可以运行 ngen 在你的申请上。如果不是它可能是一个缓慢的网络连接。 CodeGuru有一个关于使用ngen 的教程。
其他提示
为了加快加载时间,您可以编译一个微小的启动应用程序,并让该应用程序在bin文件夹外的库中从运行时加载程序集。
确定称重的JIT时间NGEN的可行性无疑是一个很好的起点。我也同意那些希望通过使用另一个入口点然后加载程序集来捏造加载时间的人。通常情况下, 速度 与 实际速度 相比,可以改善用户体验。
为应用设置Clickonce,以便将其部署到本地计算机。
你可以像微软Office(和我想的那样)作弊,并在启动组中添加一个应用程序,告诉应用程序加载然后立即卸载。这样,当用户尝试启动应用程序时,DLL会预先缓存在内存中。只抓住:我不完全确定它是否以这种方式与网络文件一起工作 - 如果没有,这可能是启动缓慢的原因(即你总是做冷启动与可能的热启动如果从本地机器运行。)
不隶属于 StackOverflow