Windows はちゃんと使える PC にするまでのプロセスが面倒ですよね。自分用に設定を切り替えるだけなのに丸々一日使っても終わらない。なんで最初からハードに合わせて最適化してくれないんだ。
この事実は知らない人も多いのですが(技術者に聞いた話ですけど) WindowsXP は出荷状態では OS 自体の設定がすべて一緒になっています。これはどれだけ高機能の PC を買っても5万程度で買えるショップ PC でも性能にそれほど差がないってことです。
っではどうしたらいいんでしょうか?それには Windows をとことんいじるしかありません。不要なスタートアップサービスでメモリを使っていることもありますし、CPU 本来の性能を使っていないってこともあります。っと言うことで僕が色々試したカスタム方法で簡単なモノをまとめてみようと思います。
Windows XP を高速化するための手順
- カーネルを物理メモリ上で動かす
- CPU の二次キャッシュを使えるように設定する
- ページングファイルを変更する
- DLL をメモリから解放する
- ワトソン博士を停止する
- Windows テーマをクラシックに切り替える
- 視覚効果を切る
- CD-R 機能を切る
- デスクトップアイコンの整理
※これら方法はメモリ 256MB 以下の PC では効果がないかもしれません。
- カーネルを物理メモリ上で動かす
- これはメモリを多く積んでいる PC ( 512MB 以上)でないと意味がありません。カーネルとは OS の基本的な機能を実行するメインとなるプログラムです。通常は低速な HDD 内でカーネルは動いています。これを高速なメモリ上で動かすように設定することによって XP 全体を高速化することができます。
- レジストリエディタを開き、HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Session Manager¥Memory Management¥に存在する DWORD 値、DisablePagingExecutive を16進数で1と入力する。
CPU の二次キャッシュを使えるように設定するCPU にはキャッシュというメモリ領域があり Pentium シリーズには一次キャッシュ、二次キャッシュが存在する。通常のメモリと比較すると、3〜5 倍高速なメモリらしいが WindowsXP は、デフォルトでは CPU の二次キャッシュのサイズを 256KB と認識させている。これをもっと使用できるように変えることで CPU 本来の性能を引き出すことが可能になる。- 二次キャッシュの確認には CPU-Z などを使用して確認してください。
レジストリエディタを起動し、HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Session Manager¥Memory Management¥ の中にある SecondLevelDataCache の値を、10進数で入力し使用している CPU の二次キャッシュの値(KB単位)を入力。- 追記:はてブでid:stealthinuさんから言及があって思い出したんですが、Celeronだとだめだとどこかに書いてありました。
- 更に追記:id:stealthinuさんからコメントで教えてもらったのですが、Intel PentiumⅡ以降、およびAMD Athlon / Duron などでは二次キャッシュの認識方式が違い、ちゃんと初めから認識しているのでデフォルトの0のままにしておいても最適化されているので設定を変える必要はないそうです。
- ページングファイルを変更する
- ページングファイルとは Linux, Unix では Swap と呼ばれる領域で物理メモリ以外にメモリ領域を作ってくれます。windowsXP では HDD 上に作られます。またデフォルトではページングファイルのサイズが可変になっているためディスクの断片化を引き起こします。ディスクが断片化すると HDD にアクセスする際、読み込みに時間がかかるようになってしまいます。
- 大量の物理メモリを積んでいる PC に限りますが「マイコンピュータ」→「プロパティ」→「システムのプロパティ」→「詳細設定」→「パフォーマンス」→「設定」→「パフォーマンスオプション」→「詳細設定」→「仮想メモリ」→「変更」→「仮想メモリ」でページングファイルなしを選ぶのがいいと思います。
- また裏技ではないのですが、SD カードなど使える場合は常時接続し、ページングファイル用のドライバとして使うのもいいかもしれません。そうすれば HDD の断片化を気にせずページングファイル機能が使えます。
- DLL をメモリから解放する
- デフォルトでは DLL ファイルは、アプリケーション終了後もしばらく物理メモリに保持されています。これをアプリケーション終了後に削除することにより、物理メモリの圧迫を抑えます。
- レジストリエディタを起動HKEY_LOCAL_MACHINE¥SOFTWARE¥Mcrosoft¥Windows¥CurrentVersion¥Explorer¥ を開きます。ここに DWORD 値 AlwaysUnloadDLL を新規作成し、16進数で値を 1 と入力。
- ワトソン博士を停止する
- エラー発生時に活動するサービスに「ワトソン博士」っというのがあるのですが、一度も見たことがないので停止させます。たぶんもう使うことはないんじゃないでしょうか。
- レジストリエディタを起動し、HKEY_LOCAL_MACHINE¥SOFTWARE¥Mcrosoft¥Windows NT¥CurrentVersion¥AeDebug¥ を開きます。ここに存在する文字列値 Auto の値を、16進数で 0 と入力。
- Windows テーマをクラシックに切り替える
- 「スタート」→「コントロールパネル」→「画面」→「テーマ」タブで、「テーマ」をクラシックに。この状態だとテーマが変わっただけなので実際のサービスそのものを「スタート」→「コントロールパネル」→「管理ツール」→「サービス」→「Themes」→「プロパティ」→「全般」→「スタートアップの種類」を「無効」にして「開始」、これで切れる。
- 視覚効果を切る
- マイコンピュータ→「プロパティ」→「システムのプロパティ」→「詳細設定」→「パフォーマンス」→「設定」→「パフォーマンスオプション」→「視覚効果」→「パフォーマンスを優先する」のラジオボタンを有効にする
- 下記の辺りを切ると体感速度がアップする。
- ウィンドウとボタンに視覚スタイルを使用する
- ウィンドウを最大化や最小化するときにアニメーションで表示する
- マウス ポインタの下に影を表示する
- メニューの下に影を表示する
- CD-R機能を切る
- 最近の PC にはデフォルトで CD-R などのライティングソフトが付いてくるのでWindows 自体の機能は切っておく方がお得。これでメモリリソースも減らせる。
- 「スタート」→「ファイル名を指定して実行」→「gpedit.msc」→「OK」→「ユーザーの構成」→「管理用テンプレート」→「Windowsコンポーネント」→「エキスプローラ」→「CDの焼付け機能を削除する」を開いて「有効」にする。
- デスクトップアイコンの整理
- Windows は起動時にデスクトップを読み込むので、ここに多くのファイルがあればあるほど、起動が遅くなります。またデスクトップが表示されるたびに重い処理が必要になるため、システムのパフォーマンスを大幅に低下させます。その為デスクトップにはゴミ箱だけにしておくのが吉。
上記の内容を変更するなら自己責任でお願いします。
実はまだまだ細かい変更箇所がいっぱいあるのですが、効果が大きいものを載せてみました。後ほど独立したページとしてジャンル順にでもまとめてみようかと思いますが、今回はこの辺で。興味がある方は Google で検索でもかけてみるといっぱい出てきますよ。

- ウィンドウズXPの動作&操作をスピードアップする本―起動も処理も高速化!効果てきめんな「技」総まとめ!!
- 田中 拓也
- ローカス 2006-08
- 売り上げランキング : 131618
by G-Tools , 2007/06/18
とりあえずボクの Thinkpad ではこれらをする前とした後ではベンチマークの結果が約20%あがっていましたよ。
http://arena.nikkeibp.co.jp/tec/winxp/20040312/107915/
などによると、『CPU の二次キャッシュを使えるように設定する』というのは、もうあまり意味がないとのことです(0に設定しておくと、Windows 側で自動的に検知する)。僕も試してみて、体感的に全く変わらなかったので、そうかもと思います。
>tkshさん
えぇ〜とですねぇ。最近のXPsp2では二次キャッシュ0設定で512KBとと認識してるそうです。ですので2MB二次キャッシュのある上位CUPなどをを使ってる場合はそれなりに効果はあります。
あとですねベンチマークで20%上昇なので数秒以下の処理が20%向上しても体感速度的には対した違いにはなりそうにありません。
2次キャッシュの件です。
気になったので検索して調べてみました。
SecondLevelDataCache値の調整効果は
http://www.dr-pc.jp/performance.htm
Detailed Explanation of SecondLevelDataCache
http://support.microsoft.com/kb/183063/en-us
PentiumII以降だとdirect- mapped L2 cachesを持っていないため、この値の内容は意味をなさないとのことです。
>stealthinuさん
ありがとうございます。
僕は人に聞いただけだったのでちゃんと調べてませんでした。
ちゃんとマイクロソフトのサイトに載ってるんですね。
本文のほうも修正しておきました。
自分も勉強になりました。
ありがとうございます。