我注意到,即使是最基本的 Winform 应用程序(即只有一个窗口,没有额外的模块)在通过 Ngen 创建其机器代码等效项后仍需要几秒钟才能加载。我猜瓶颈是从磁盘加载 .Net 框架。
微软的缓存集不允许管理磁盘缓存的实际内容。
是否有一个应用程序可以强制 Windows 将主 .Net 文件保留在其磁盘缓存中,以解决 .Net 应用程序启动时间变慢的问题?
谢谢。
编辑:这是进程监视器的进程时间线的屏幕截图:
答案1
.NET 框架在首次加载到内存中时确实存在轻微的滞后,但程度远不及您所说的程度。您使用调试器运行吗?
或者,您可以查看已签名的 .NET 程序集是否正在尝试访问crl.microsoft.com
,这可能会根据网络状况引入延迟。使用进程监控为了这。
事实上,进程监视器将逐步地为您识别运行某些程序时发生的情况,您可以比猜测更轻松地缩小问题范围。