When i take some .net assembly and run it on machine => the JIT convert the code to native and run it.
If i will stop the application and run it again it will load ( again ) into JIT and the JIT will convert it again and run it again.
So why is the second time of the application run will be more optimize and fester ?
Does the JIT save somehow the first native code and then there is no need to convert the code again from the IL to native ? if its ‘yes’ so where the converted code ( the native ) is saved ?
It’s probably in memory. Pretty much the second time you do anything is faster as whatever you’re doing is cached in various places through the system (by your disc, by the OS, …).
When I say “it” I mean the full chain of files and libraries that are needed to make your .NET app run.