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 ?