PowerShellの起動速度を改善する

海上忍
2009-04-09 11:01:01
  • このエントリーをはてなブックマークに追加

 前回は、PoweShellのスタートアップファイルを作成したが、スクリプトを実行するための体裁を整えたに過ぎず、まだ中身は空で意味はない。

 最初に何を書くかだが、Windows PowerShellの起動を高速化する「おまじない」が妥当だろう。デフォルトではログオンするつどネイティブコードを作成する仕様のため、初回の起動に時間がかかる。2回目以降の起動は格段に速くなるものの、激しくストレスを感じる向きも多いことだろう。

 以下に示すスクリプトは、Windows PowerShell Blogで紹介されたもの。.NET Framwworkのランタイムに含まれるネイティブイメージジェネレータ(Ngen.exe)を使い、プログラムを事前コンパイルすることで起動速度を大幅に短縮するというしくみだ。論より証拠、まずは試していただきたい。

> Notepad $profile  ←メモ帳でスタートアップファイルを開く

(以下のスクリプトをコピー&ペーストして上書き保存)

Set-Alias ngen (Join-Path ([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) ngen.exe)
[AppDomain]::CurrentDomain.GetAssemblies() |
    sort {Split-path $_.location -leaf} | 
    %{
        $Name = (Split-Path $_.location -leaf)
        if ([System.Runtime.InteropServices.RuntimeEnvironment]::FromGlobalAccessCache($_))
        {
            Write-Host "Already GACed: $Name"
        }else
        {
            Write-Host -ForegroundColor Yellow "NGENing      : $Name"
            ngen $_.location | %{"`t$_"}
         }
      }
このスクリプトをスタートアップファイルに追加すると、ログオン直後でも高速にPowerShellを起動できる このスクリプトをスタートアップファイルに追加すると、ログオン直後でも高速にPowerShellを起動できる
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]