ネイティブ イメージ ジェネレータ (Ngen.exe)を調べてみた
まず.NET アプリケーションがどのように動作するところからおさらいしてみる。
ソースコードを書き、Microsoft Visual Studio でビルドを行う。すると実行ファイルが 生成されます。これは一見コンピュータが認識できるマシン語で構成されたファイルに見えるが 実際は中間コードです。このままではコンピュータは実行できないので中間コードを コンパイルしてコンピュータが理解できるネイティブコードに変換する必要があります。 一度、ネイティブコードに変換した処理はキャッシュに残るので2回目以降の呼び出しは 1回目に比べ処理時間がかかりません。 このネイティブコードは一時的なもので、プロセスを終了すると残りません。 EXEを起動しなおすとネイティブコードを作りなおす必要があります。 Ngen.exe は予め中間コードをネイティブイメージに変換しキャッシュにしまっておくことで 1回目からキャッシュに格納しているネイティブなコードを利用することができます。 中間コードをコンパイルしてネイティブコードに変換する時間が省けるため、 その分処理時間が短縮できる。このキャッシュはハードディスク上に存在しているため、 プロセスを終了しても残ってます。 参考: http://msdn.microsoft.com/ja-jp/library/6t9t5wcf(v=vs.80).aspx http://msdn.microsoft.com/ja-jp/library/vstudio/hh691756.aspx |