1.定期的に不要なファイルの削除を行う
2.定期的にデフラグを行う
当たり前ですが、一応書いておきました。
3.定期的に、不要なレジストリキーの削除・レジストリの再構築を行う
レジストリは、Windows OS や Windows のアプリケーション が、その動作に必要な設定や情報を書き込んでおくためのデータベースです。
レジストリは集中管理できるため設定地の取得などは容易ですが、全体を把握しづらく、アンインストールしたアプリケーションのデータが残るなど、不要なレジストリキーが残ってしまう事も少なくありません。
このため、定期的に不要なレジストリキーを削除したり、レジストリ全体を再構築するなどのメンテナンスを行わないと、レジストリの肥大化が原因でOSが不安定になる事もあります。
レジストリの再構築(または最適化と呼ばれる)は、ファイルシステムでいうとデフラグの様な処理です。
「Windwosシステム・メンテナンス情報」で紹介しているウェブページで、不要なレジストリキーの削除やレジストリの再構築を行うフリーウェアを紹介していますので、よろしければご覧下さい。
私自身、
- 「パソコンの処理が遅くなったと感じた際にレジストリの再構築で処理が速くなった」、
- 「度々ブルースクリーンになって停止する様になったパソコンがレジストリの再構築でトラブらなくなった」
といった経験があります。
不要なレジストリキーやレジストリの肥大化がパフォーマンスに与える影響は小さくないと思います。
4.ページファイルの場所を最適化する、あるいはページファイルを使用しない
ページファイルの場所を、システムドライブ以外のドライブに変更することで、パフォーマンスが向上することがあります。
理由は、
- ページファイルという大きなファイルが無い事でフラグメント化が起きにくくなるため
- ディスクアクセスの競合が起きなくなるため(ページファイルを Windows システムとは別のハードディスク装置に移動した場合)
の2つです。
500MB 以上の物理メモリを積んでいてメモリを大量に消費するアプリを使わない場合、ページファイルを使わない様に設定する事で、仮想メモリの利用によるオーバヘッドを無くす事が出来ます。
「Windwosシステム・メンテナンス情報」の内容を参考に、ページファイルのサイズの最適化などを行って下さい。
参考1:ページファイルやスプールファイルの場所を最適化するには?.
< http://homepage2.nifty.com/winfaq/c/ntperf.html#1293 >
参考2:ページングファイルを使用しない < http://winxp.1123.info/010/post_3.html >
5.スプールファイルの場所を最適化する
ページファイルと同様に、スプールファイルの場所をシステムドライブ以外のドライブに変更することで、パフォーマンスが向上することがあります。
手順は以下の通りです。
- 「コントロールパネル」の「プリンタ」フォルダを開く。
- [ファイル]-[サーバーのプロパティ]をクリックして「サーバのプロパティ」を開く。
- 「詳細設定」タブをクリックして、スプールフォルダを変更する。
参考:ページファイルやスプールファイルの場所を最適化するには?.
< http://homepage2.nifty.com/winfaq/c/ntperf.html#1293 >
6.システムの設定をパフォーマンス優先の設定にする
システム設定に以下の様な変更を加える事でパフォーマンスの向上を図る事が出来ます。
- アニメーションや、フェード効果、スクロール効果、影をつけるなどの視覚効果をオフにします。
< http://homepage2.nifty.com/winfaq/c/ntperf.html#723 >
- Windows XP なら Luna(ルナ) 、Windows Vista なら Aero(エアロ) をオフにする事で、パフォーマンスの向上が見込めます。
これらを完全にオフにすると味気ないという事でしたら、下記の方法で「Themes サービス」を停止するか、上記1.の対策で対応して下さい。
「Themes サービス」を停止するには、[Windows] + [R] キーを押すなどして「ファイル名を指定して実行」ダイアログボックスを開き、「services.msc」 と入力して[ OK] をクリックすると、サービス管理機能を立ち上げて、「Themes サービス」を停止して、「全般」タブ内スタートアップの種類を「手動」に変更してください。
< http://www.v-win.net/interface/windows_aero.html >
- Windows 2000 以降ならば、フォアグラウンドのプログラムとバックグラウンドのプログラムの、「CPU 占有時間比率」をコントロールパネルから変更できます。
ただし、通常はアプリケーション優先の設定なので、サービスを優先させたい場合以外には変更してパフォーマンスが向上する事は無いでしょう。
参考:
7.Windowsのメモリに関する設定を変更
Windows 2000 以降でのみ可能な対策です。
レジストリキー 「HKEY_LOCAL_MACHINE \System \CurrentControlSet \Control \Session Manager \Memory Management」 キー配下の「値」に設定する「データ」を変更する事で、設定変更を行います。
このセクションでの設定変更は、レジストリの設定を伴うので、専用のソフトを使うのが良いです。
お勧めは、「いじくるつくーる」です。 7.1.すべてのカーネルを常にメモリに置き、アクセスを高速化
すべてのカーネルをメモリからスワップアウトさせない様にする事でパフォーマンスの向上を図るものです。
128MB 以上の物理メモリを積んでいる場合、有効です。
前述のレジストリ・キー(HKEY_LOCAL_MACHINE \・・・\Memory Management)配下の「DisablePagingExecutive」という「名前」の「値」にDWORD値「1」を設定します。
・「いじくるつくーる」を使った場合、手順は以下の通りです。
- いじくるつくーるを起動する。
- 「Windows NT系」カテゴリの 項目:「Windows NT系設定」 を開く。
- 「カーネルは常にメインメモリに置く」にチェックをいれる。
- 「適用」ボタンまたは「保存」ボタンをクリックする。
→ 設定が変更されます。 - パソコンを再起動する。
7.2.ディスクキャッシュサイズをカスタマイズして高速化
ドライバなどが I/O 処理に使うバッファのサイズを調整します。
ディスクキャッシュにも使われるバッファです。
「0」だとWindowsのデフォルトの値となります。
デフォルトは 512KB と非常に少ないため、十分な物理メモリーを搭載している場合は、バッファサイズを数 MB 程度に増やす事でパフォーマンスの改善を期待できます。
Microsoftの文献(KB102985/ja, KB102985/en-us)によると設定可能な値の最大値は、以下の様になります。
- IoPageLockLimit に設定可能な最大値 = 物理メモリ - パッド
物理メモリ | パッド
|
IoPageLockLimit最大値(バイト数で指定) |
64Mバイト以下 | 7Mバイト |
物理メモリ量 - 7Mバイト |
64Mバイト~500Mバイト | 16Mバイト |
物理メモリ量 - 16Mバイト |
512Mバイト以上 | 64Mバイト |
物理メモリ量 - 64Mバイト |
例:物理メモリ量が128Mバイトの場合:(128-16)×1024×1024=117440512(バイト).
ただし、上の表は設定できる最大値で最適な値ではありません。
色々と調べて見ましたが、最適な値は環境によって異なるため試してみるしかない様です。
日本製のWindowsカスタマイズ・ユーティリティとして有名な「いじくるつくーる」のヘルプを見ると、目安として物理メモリの 12.5% の値をあげてありました。
また、他の文献では設定可能な最大値の半分の値を設定して、様子を見ながら徐々に大きな値に変更して行ってみると良いと書いてありました。
まとめると、以下の様な感じでしょうか。
- IoPageLockLimit 設定値の考え方
物理 メモリ | 目安(10進)=初期値
| 目安(16進)=初期値 | 最大値の半分(10進)
| 最大値の半分(16進) | 最大値(10進)
| 最大値(16進) |
64 MB
| 8388608 | 800000 | 29884416 | 1C80000 | 59768832 | 3900000 |
128 MB
| 16777216
| 1000000
| 58720256 | 3800000 | 117440512 | 7000000 |
196 MB
| 25690112
| 1880000
| 94371840 | 5A00000 | 188743680 | B400000 |
256 MB
| 33554432
| 2000000
| 125829120 | 7800000 | 251658240 | F000000 |
384 MB
| 50331648
| 3000000
| 192937984 | B800000 | 385875968 | 17000000 |
512 MB
| 67108864
| 4000000
| 234881024 | E000000 | 469762048 | 1C000000 |
768 MB
| 100663296
| 6000000
| 369098752 | 16000000 | 738197504 | 2C000000 |
1 GB
| 134217728
| 8000000
| 503316480 | 1E000000 | 1006632960 | 3C000000 |
.
前述のレジストリ・キー(HKEY_LOCAL_MACHINE \・・・\Memory Management)配下の「IoPageLockLimit」という「名前」の「値」に設定する「データ」を変更します。
参考:
ITmedia エンタープライズ:Windows Tips「Windows2000/XPのパフォーマンスを向上させる その2」.
[Microsoft サポート オンライン]
KB102985/ja, KB102985/en-us REG: CurrentControlSet エントリ PART 2: SessionManager
7.3.プログラム起動用メモリ4MBを開放することで少し高速化
Windows 2000 以降では、初期設定でアプリケーション起動用メモリとして4MBほどを確保する様になっています。
この4MBは、物理メモリが64MB以下の環境では効率良く使われます。
しかし、最近の多くのパソコンの様に物理メモリが128MB以上の環境では無駄なスワップが発生する原因となります。
物理メモリが128MB以上の場合、この設定を無効にすると、アプリケーション起動用に限定して確保していた物理メモリを、自由に使用できる様になるため、わずかですがパフォーマンスアップにつながります。
前述のレジストリ・キー(HKEY_LOCAL_MACHINE \・・・\Memory Management)配下の「LargeSystemCache」という「名前」の「値」にDWORD値「0」を設定します。
・「いじくるつくーる」を使った場合、手順は以下の通りです。
- いじくるつくーるを起動する。
- 「システム関連」カテゴリの 項目:「Windowsの深い部分の設定」 を開く。
- 「プログラム起動用メモリを開放する」にチェックをいれる。
- 「適用」ボタンまたは「保存」ボタンをクリックする。
→ 設定が変更されます。 - パソコンを再起動する。
・Windows XP の場合、コントロールパネルから変更することもできます。
- [コントロールパネル] から「システム」を起動します。
- [詳細設定] タブをクリックし、パフォーマンスの「設定」ボタンをクリックします。
- [詳細設定] タブのメモリ使用量で、「プログラム」を選択するとアプリケーション実行優先、「システム キャッシュ」を選択するとファイルシステムキャッシュを優先に設定されます。
8.XPのPrefetch機能、VistaのSuperFetch機能およびReadyBoost機能のカスタマイズ
Windows XP でPrefetch機能、Windows Vista でSuperFetch機能およびReadyBoost機能が導入されました。
これらの機能は、使われるファイルを予測してHDDよりアクセス速度の速いメモリやSSDに読み込んでおく事で、OSやプログラムの起動時間の短縮を実現するものです。
しかし、一部の環境では相性の問題で以下の様な問題が発生することがあります。
- 起動が遅くなる。
- 起動時にエラーが発生する。
- OSが起動してもネットワークが使えるまで時間がかかる。
その場合、この機能の設定を変更する事で改善できる事があります。
8.1. Windows XP の Prefetch フォルダを空にしてみる。
C:\WINDOWS\Prefetch を開き、中にあるファイル全て(Prefetch フォルダ内の拡張子*.pf と*.iniのファイル全て)を削除して再起動してみます。
これで改善された場合、Prefetchデータに問題が発生していたと考えられます。
再発しなければ、これで解決したと考えて良いと思われます。
8.2. Windows XP の Prefetch機能の設定を変える。
この設定にはレジストリの編集を伴います。
前述の7.の設定と同様に、専用のソフトを使うのが良いです。
やはりお勧めのソフトは「いじくるつくーる」です。
・いじくるつくーる < http://www.yoshibaworks.com/ayacy/inasoft/rnsf7/index.html >
手順は以下の通りです。
- いじくるつくーるを起動する。
- 「Windows NT系」カテゴリの 項目:「Windows NT系ログオン」 を開く。
- 「システムまたはアプリケーション起動最適化の優先度」を以下の4つから適切なものを設定します。
- 0 :起動最適化を行わない、
- 1 :アプリケーションの起動最適化を行う、
- 2 :システムの起動最適化を行う、
- 3 :アプリケーションとシステムの起動最適化を行う
- 「適用」ボタンまたは「保存」ボタンをクリックする。
→ 設定が変更されます。
- パソコンを再起動する
参考: 8.3. Windows Vista のSuperFetch の設定を変える。
Windows SuperFetch は Windows サービスのひとつとして実装されています。
この機能は、Windows起動直後では逆にHDDへのアクセスを増加させてパフォーマンスを下げる可能性があります。
このサービスのスタートアップの種類はデフォルトで [自動] になっていますが、 [無効] あるいは [自動(遅延開始)] に設定を変更することもできますので、変更すると起動直後のパフォーマンスが改善するかもしれません。
[Windows] + [R] キーを押すなどして「ファイル名を指定して実行」ダイアログボックスを開き、「services.msc」 と入力して[ OK] をクリックすると、サービス管理機能を立ち上げて、設定の変更を行ってください。
9.使っていないプログラムやデータを強制的にスワップアウトさせる
時には、強制的なスワップアウトが必要となる場面があります。
そういった際には、フリーウェアなどを使う事で強制的なスワップアウトを実現できます。
これらのソフトは、一度 大量にメモリを確保した後で開放する事でスワップアウトをさせてメモリの空き容量を確保しています。
おすすめはクロノス・クラウン合資会社が提供する「めもりーくりーなー」の軽量版です。私が今まで使った中では一番動作がかるいソフトです。
常駐させるより、「上級者向け設定」の「お掃除ファイルの作成」を使ってスワップアウトさせる機能だけを使うためのショートカットを作成した方が使いやすいと思います。
運用上、メモリの空き容量をチェックし易くしていた方が良いので、タスクトレイに常駐してメモリの状況を表示するフリーウェアも使うと良いです。
こちらは、「AllocFree」を使っています。
これは良いかどうかは判りませんが、2000 でも XP でも Vista でも問題なく使えました。
「AllocFree」でも強制的にスワップアウトさせる機能はありますが、「めもりーくりーなー」の方がスワップアウトさせる際の動作が軽いので、目的に合わせて使っています。
またスワップアウトさせなくても、タスクマネージャなどでメモリを消費しているプログラムを特定し、時々プログラムを閉じて再度開くという対応をするのも良いでしょう。
10.バックグラウンドで動作する不要なプログラムを停止させる
バックグラウンドで動作する不要なプログラムを停止させる事で、パフォーマンスの改善を見込めます。
バックグラウンドで動作する、自動で起動される主なプログラムはその起動方法によって5種類に分類できます(サブシステムは除いて)。
- タスク スケジューラに起動されるプログラム
- サービスとして起動されるプログラム
- レジストリに、OS起動時に開始するプログラムとして登録されているプログラム
- レジストリに、ログオン時に開始するプログラムとして登録されているプログラム
- スタートアップフォルダにあるプログラム
レジストリで、プログラム開始の設定がされているものについては、「いじくるつくーる」で調査・対応可能です。
タスクスケジューラとスタートアップフォルダについては問題ないでしょう。
サービスについては、判らなければ触らない方が良いでしょう。
不要なプログラムかどうかを判断するのは難しいかも知れません。
例えば、ウィルス対策ソフトはサービスとして起動している事が多いかもしれませんが、そのモジュールの一部がOS起動時に開始するプログラムとしてレジストリに登録されている場合もあります。
十分注意して対応して下さい。
11.その他
その他にも様々な対策があります。
例えばタブブラウザを使うと、複数のウェブ・ページを同時に開いて使う際に、複数のブラウザを立ち上げずに済むため、パソコンの負担が軽くなる事が多いです(IEのレンダリングエンジンを使ったタブブラウザには、Sleipnir、Lunascape などがある。IEのレンダリングエンジンでなくて良ければ、FirefoxやOperaもある。IE7もタブブラウザだが、IE7のパフォーマンスが良いとは多分いえない)。
タブブラウザについては、当サイトの 「各種ソフトウェア情報 > インターネット 」をご覧下さい
その他の対策に興味のある方は、リンク先などを参考にして下さい。
Windows 98/Me
|
Windows 2000
|
Windows XP
|
Windows Vista
|
XPのPrefetch機能はその名の通り、ファイルを先読みする機能です。 OSやアプリケーションの起動時のディスク・アクセスをモニタしてディスクアクセスの傾向を調査しおき、次回から調査した情報を元にファイルの先読みを行います。
VistaのSuperFetchはXPのPrefetch機能を強化したもので、ユーザがアプリケーションを使用する際の行動パターンを学習してファイルの先読みに利用し、先読みしたファイルが実際に使われるヒット率を上げるものです。
ReadyBoost機能は、HDDとHDDよりアクセス速度の速いSSDを組み合わせ、SuperFetch機能を使って先読みするデータをSSDにキャッシュしておく事でOS起動の時間を短縮させるものです。
特別編 Vistaの知られざる機能を探る――USBメモリーでパフォーマンスが上がる!?“ReadyBoost”とは何か.
ReadyBoostに使用できるフラッシュメモリーはUSBメモリーだけではない。 SDメモリーカードやCF(コンパクトフラッシュ)、メモリー
スティックなど、ほとんどの取り外し可能なフラッシュメモリーデバイスが利用できる。 インターフェースもUSBに限らず、PCカードやExpress
Cardなどが利用できる。
ReadyBoostで使えるか否かを決めるのは速度だ。 ReadyBoostとして使えるフラッシュメモリーの条件は、以下のようになっている。
- 容量が512MB以上(最大4GB)
- 4KBブロックのランダム・リードが2.5MB/秒以上
- 512KBブロックのランダム・リードが1.75MB/秒以上
注意が必要なのは、デジカメ用などに使われている高速なフラッシュメモリーは、シーケンシャルアクセスは高速だが、ランダムアクセスの性能がそれほ
ど高くないものがある点である。 こうしたフラッシュメモリーは、ReadyBoostでは使用できない。 またUSB
2.0に対応するUSBメモリーのすべてが、ReadyBoostで使用できるわけでもない。 上記のスペックを満たさないUSB
2.0対応メモリーは数多く存在する。
ダウンロード | TuneXP 1.5 - Windows高速化ソフト . AutoMz Ultimate Tweaker : Windows XP/Vistaを自動で強力に高速化・最適化 » 窓の杜とベクターフリーソフトのダウンロード
|