こんにちは、阿久津です。長年Windowsを使い続けると問題になるのがレジストリの肥大化です。WindowsはOS自身はもちろん、ハードウェアからソフトウェアに至るまで、さまざまな情報をレジストリに蓄積し、その情報を元に各機能を実現してきました。そのため、使用期間やインストールしたアプリケーションの数に応じて肥大化する傾向があります。
なかでも顕著なのがソフトウェアに関する共通情報を格納するHKEY_LOCAL_MACHINE\SOFTWAREキー。直下にはベンダー名を名前に持つサブキーが並び、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsキーやHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NTキーは、Windowsに関する情報も含んでいます(図01)。
このような理由から、HKEY_LOCAL_MACHINE\SOFTWAREキーはHKEY_CURRENT_USER\Softwareよりも肥大化する傾向にありますが、Windows 9x時代と異なり肥大化しても極端なパフォーマンスダウンにつながる訳ではありません。しかし、不要な情報は削除するなど整理整頓はWindows 8.1も同じです。ちょうど今週はゴールデンウィークですので、ツールを使って肥大化したレジストリサイズを圧縮するチューニングをご紹介しましょう。
今回使用するツールは、Windows SysinternalsのRegistry UsageとPendMoves & MoveFile。SysinternalsはBryce Cogswell氏とMark Russinovich氏が創設した企業ですが、2006年7月にMicrosoftが買収。Russinovich氏はMicrosoftに入社し、現在はテクニカルフェローを務めています。
Windows Sysinternalsは自動起動するソフトウェアの除去など、多くの便利なツールを取りそろえていますので、これを機会に"全部入り"となる「Sysinternals Suite」のインストールをお勧めします(図02~03)。
続いて今回使用するツールはすべてコマンドラインから実行しますので、あらかじめ環境変数PATHの設定を変更しましょう。ユーザー環境変数としてPATHを新規作成し、Sysinternals Suiteを展開したフォルダーを追加するだけです(図04~06)。
図04 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「rundll32.exe sysdm.cpl,EditEnvironmentVariables」と入力して<OK>ボタンをクリックします |
図06 変数名のテキストボックスに「PATH」、変数値のテキストボックスに「C:\Tools\Sysinternal」などSysinternal Suiteを展開したフォルダーを入力し、<OK>→<OK>と順にボタンをクリックします |
これで準備ができました。早速レジストリサイズを確認してみましょう。コマンドプロンプトから「ru HKLM\SOFTWARE」と実行してください(HLKM=HKEY_LOCAL_MACHINE)。下図の実行結果は、HKEY_LOCAL_MACHINE\SOFTWAREキー下の値が859,461個、サブキーは427,217個、サイズは120,996,116バイト(0.11GB)と示されています(図07~09)。
それではこの環境でレジストリサイズを圧縮してみましょう。
1. 管理者権限でレジストリエディターを起動します。
2. HKEY\_LOCAL\_MACHINE\SOFTWAREキーをレジストリハイブ形式でエクスポートします。
3. movefileコマンドでC:\Windows\System32\config\SOFTWAREをリネームします。
4. movefileコマンドでエクスポートしたレジストリハイブファイルをC:\Windows\System32\config\SOFTWAREに移動します。 5. PCを再起動します。
これでチューニングが完了しました(図10~18)。
図13 先の手順を参考にコマンドプロンプトを管理者権限で起動し、「dir C:\NEW C:\Windows\System32\config\SOFTWARE」と入力して[Enter]キーを押してください。これで、エクスポートしたレジストリハイブファイルのサイズを、約10MB削減できたことがわかります |
早速結果を確認してみましょう。再び管理者権限でコマンドプロンプトを起動し、「ru HKLM\SOFTWARE」を実行してください。結果はPC環境によって異なりますが、今回のPC環境ではレジストリハイブファイルのサイズにおいて10MBほど圧縮されました(図19)。
今回はレジストリの実体であるレジストリハイブファイルを操作するため、細心の注意を払って作業することと、事前のバックアップを強くお勧めします。今回はWindows 8.1を使用していますが、「PendMoves & MoveFile」はWindows XP以降、「Registry Usage」は動作環境が明らかではありませんが、レジストリ仮想化に対応しているので、Windows 7やWindows Vistaでも本チューニングを試せると思われます(図20)。
それでは、また次号でお目にかかりましょう。
阿久津良和(Cactus)