私はいくつかの.netアセンブリを取って、マシンでそれを実行する=> JITはコードをネイティブに変換して実行します。 私はアプリケーションを停止して再度実行するとJITに(再び)ロードされ、JITはそれを再び変換して実行します。.netコードが初めて実行されるのはなぜですか?> 2番目の速度が遅くなるのはなぜですか?
なぜ、アプリケーションの2回目の実行が最適化され、フェスターになるのでしょうか? JITは何とか最初のネイティブコードを保存しますか?そして、ILからネイティブコードにコードを再度変換する必要はありませんか?その 'はい'の場合、変換されたコード(ネイティブ)が保存される場所は?
あなたが書いたコードだけでなく、アプリケーションを実行するために.netがロードする必要があるすべてのライブラリを考慮する必要があります。だから、いったんメモリにロードされると、はるかに速くなります。 – ChandlerPelhams
可能な複製:http://stackoverflow.com/questions/3295622/is-the-net-jit-compiled-code-cached-where – Andreas
シンプルなディスクキャッシュが多くを説明するかもしれない... –