NGenのススメ ~読み込み実行の高速化~

秀丸のディレクトリにある.NET Framework系のアセンブリのNGenも参照してください。
お手軽にNGenできます。
  • 概要

    IronPython.dllはモジュールとして4M近い大きさの単体ファイルであるため、
    最初にIronPython.dllを読み込みをし、プログラムが自動的に、中間言語をCPUが実行出来るネイティブイメージに変換するため、
    スクリプトを実行しはじめるまでに少し時間がかかります。

    実際に、hmPy.dllを利用したマクロ(IronPythonスクリプト)を実行すると、
    少し待ち時間を体感出来るハズです。

    同じスクリプトを2回目以降実行する分には、この時間は大幅に短縮されます。

    NGenを利用し、待ち時間を大幅短縮

    NGen(ネイティブ イメージ ジェネレーター)を利用することで、hmPy.dllが利用するIronPython.dllの この最初の待ち時間を大幅にカットすることが出来ます。

    • 「管理者権限」でプロンプトを実行

      管理者権限でプロンプトを実行します。管理者権限であることが必須です。

    • .NET Frameworkのフォルダへと移動

      cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
      
      もしも、x86版のhmPy.dllではなく、x64版のhmPy.dllを利用している人は、
      cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
      
      といったように、64版のFrameworkディレクトリへと移動してください
    • IronPythonのネイティブイメージを作成

      以下のように「ngen install」のコマンドを利用して、ネイティブイメージを作成してください。 「C:\usr\hidemaru\IronPython.dll」の部分は、実際のあなたの秀丸のディレクトリやIronPythond.dllの位置に合わせてください。

      ngen install "C:\usr\hidemaru\hmPy.dll"
      ngen install "C:\usr\IronPython\IronPython.dll"
      ngen install "C:\usr\IronPython\IronPython.Modules.dll"
      ngen install "C:\usr\IronPython\Microsoft.Dynamic.dll"
      ngen install "C:\usr\IronPython\Microsoft.Scripting.dll"
      ngen install "C:\usr\IronPython\Microsoft.Scripting.Metadata.dll"
      

    IronPythonや.NET Frameworkのバージョンが更新されたら、再度NGenする必要あり

    「hmPy、IronPython、.NET Framework」のいずれかのバージョンが更新されたら、
    再度NGenする必要があります。

    PICTURE