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