在我的工作中,我们正在使用.NET Framework 4开发不同的应用程序。所有应用程序都使用我们开发的公共程序集,例如data.dll中的数据层。这些应用程序驻留在网络驱动器上,并直接从那里启动。
大多数大型应用程序需要一段时间才能启动,例如4-5秒钟(冷启动)。随后的启动速度更快,几乎是瞬间完成的。我认为这与网络无关,因为最大的程序集约为900KB,而我们正在使用千兆网络。
我想创建一个服务,该服务在计算机启动时启动,并加载特定目录下的所有.NET程序集。我希望当用户启动程序时,所有必要的程序集已经被加载和“JITed”,因此启动速度应该更快。
我知道如何创建服务,但我想知道这是否可行,因为我对CLR的理解非常有限...此外,像Assembly.LoadFrom(fileName)这样的操作是否可以预加载程序集?如果我一段时间内没有启动任何程序,它们会保持加载状态还是在一段时间后卸载?如果我更改已加载的程序集会发生什么?
基本上,我想做类似于OpenOffice Quick starter的东西,但是针对我们自己的应用程序框架。
谢谢大家!!!
---编辑--- 这很有趣...似乎朝着正确的方向前进,但不确定我是否理解了一切...
大多数大型应用程序需要一段时间才能启动,例如4-5秒钟(冷启动)。随后的启动速度更快,几乎是瞬间完成的。我认为这与网络无关,因为最大的程序集约为900KB,而我们正在使用千兆网络。
我想创建一个服务,该服务在计算机启动时启动,并加载特定目录下的所有.NET程序集。我希望当用户启动程序时,所有必要的程序集已经被加载和“JITed”,因此启动速度应该更快。
我知道如何创建服务,但我想知道这是否可行,因为我对CLR的理解非常有限...此外,像Assembly.LoadFrom(fileName)这样的操作是否可以预加载程序集?如果我一段时间内没有启动任何程序,它们会保持加载状态还是在一段时间后卸载?如果我更改已加载的程序集会发生什么?
基本上,我想做类似于OpenOffice Quick starter的东西,但是针对我们自己的应用程序框架。
谢谢大家!!!
---编辑--- 这很有趣...似乎朝着正确的方向前进,但不确定我是否理解了一切...