In my work, we develop various applications using the .net framework 4. All applications use common assemblies that we developed, for example, the data layer in data.dll. These applications are located on a network drive and run directly from there.
Most large applications require time, for example, 4-5 seconds, to start for the first time (cold start). Subsequent launches are much faster, almost instantly. I donโt think this is connected to the network, since the largest build is about 900 KB, and we use the Gigabit network.
I would like to create a service that starts when the computer starts and loads all .net assemblies in a specific directory. I hope that when the user launches the program, all necessary assemblies will already be loaded and "JITed", so the launch should be faster.
I know how to create a service, but I would like to know if this can work, because my understanding of the CLR is quite limited ... Also, will work on the assembly Assembly.LoadFrom (fileName) to preload the assemblies? If I do not start any programs for a while, do they remain loaded or do they unload after a while? What happens if I change an already loaded assembly?
Basically, I would like to do something like OpenOffice Quick startter , but for our own application platform.
Thanks everyone !!!
--- EDIT ---
This is interesting ... seems to be going the right way, but not sure if I understand everything ...
source share