C-0002 メモリが足りない場合の対処法

以下の文は全て非推奨です。読むことも、いかなる影響を受けることも、推奨しません。

メモリ不足は何故起こるのか?

Windows 95/98/Me (以下、 Win9x )を使っている場合、仮想メモリがあるので「メモリが足りないのでアプリが起動できない」という最悪の事態にはあまりお目にかからないのですが、僕のように絵を描く用途で使ったりする場合、メモリが足りないと動作が重くて話にならなくなってきたりします。

一般に「メモリ不足」と言われる現象には、実は 2 種類あります。一つは「システムリソースメモリ」の不足、もう一つはデータ用の「メモリ」の不足と呼ばれ、前者は Win9x 系が昔から抱えている問題です(互換性確保のためにはやむを得ないことですが……)。

後者は、メモリを増設すればすぐに解決できます。しかし、「システムリソース」は、どんなにメモリを積んでいても一定のサイズに固定されていて、メモリを増設しても効果はありません。大量のウィンドウを開きながら作業をするなどの場合、増設ではメモリ不足を改善できないのです。

Windows NT 系( Windows NT/2000/XP )では、システムリソースの上限は固定されていませんので、メモリを増設すれば上記のような場合にも対応できるそうです。

かつては、メモリの量は、 Office などのビジネスアプリの利用がメイン(いわゆる「普通の使い方」)の場合 64MB くらいで十分、 CAD や CG 用途では最低で 96MB (多ければ多いほどいい)と言われていました。今ではメモリの価格が大幅に下がったので、「メモリを買ってきて、増設する」という選択を誰もがとれますが、そういう時代には、メモリはまだまだ高価なものでした。以下は、そういう時代には重宝されていた、設定をいじることでパフォーマンスを引き上げる手法の数々です。

パフォーマンス向上の Tips

キャッシュの最適化

Windows には、一度利用したファイルをしばらくメモリの中に残しておき、もう一度 HDD からファイルを読む必要がある際にメモリに置いておいたデータを再利用する仕組みがあります。これを「ディスクキャッシュ(あるいは、単にキャッシュ)」と言います。標準状態では、 Windows はこのキャッシュ用に大量のメモリ領域を占有してしまいますが、実際にキャッシュが利用されることは意外と少ないので、この分のメモリはほとんど無駄になっている場合が結構あります。ということは、キャッシュに割り当てるメモリの量をあらかじめ制限しておけば、より多くの空きメモリを確保することができるというワケです。

「ファイル名を指定して実行」から c:\windows\system.ini と入力して「実行」すると「 system.ini 」という設定ファイルが開かれます。その中から、 [vcache] と書かれた行を探してください(無ければ空いている行に書き加える)。見つかったら、そこに以下のような2行を書き加えます。

[vcache]
Maxfilecache=8192
Minfilecache=4096

Max 〜 はキャッシュサイズの上限、 Min 〜 は下限です。この例の数値は一例ですので、それぞれ自分の環境(搭載メモリの量、マシンの利用用途)に合わせた値を設定しておきましょう。

仮想メモリの最適化

メモリの領域が足らなくなった場合、 Windows などの OS は、メモリ内の現在使っていないデータを一旦 HDD へ移動して、あたかもメモリが大量にあるかのように振る舞います。これを「仮想メモリ」といい、この機能があるおかげで「メモリが足りないのでファイルを開けない」といった事態はほとんど起こりません(その代わり、動作が多少遅くなります)。

仮想メモリを利用する際、仮想メモリの量をあらかじめ決めていないと、 Windows は場合に応じて仮想メモリのサイズを大きくしたり小さくしたりします。しかし、こうした操作が繰り返されると HDD 上にデータが分散(フラグメンテーション:断片化)してしまい、全体的にパフォーマンスが落ちてしまうことがあります。

これを防ぐには、最初から仮想メモリ用の決まった領域を HDD 上に確保しておくという方法が効果的です。「スタート」→「設定」→「コントロールパネル」→「システム」と辿ることで「システムのプロパティ」というダイアログが表示されますので、「パフォ−マンス」タブを選択し、「詳細設定」の項の「仮想メモリ」を選択します。ここで「自分で設定する」を選択すると、仮想メモリのサイズを固定することができます。

といっても、どの程度のサイズを指定すればいいのかは、なかなか分からないと思います。そういう場合は、最小値と最大値には搭載メモリの3倍の数値(例えば 32MB のメモリを搭載しているなら 32×3= 96MB )を入力しておきましょう。また、「ハードディスク」の欄にはなるべく、起動ドライブとは物理的に異なるドライブ装置を指定するのがベターです。そうしておくと、仮想メモリへのアクセス速度が向上するため、結果的に、若干パフォーマンスが上がります。

ハードディスクの最適化

長く HDD を使っていると、 HDD の中のデータの物理的な位置がバラバラになってくる(断片化)ため、全体的なパフォーマンスが落ちることがあります。これを防ぐには、定期的に「スタート」→「プログラム」→「アクセサリ」→「システムツール」と辿った中にある「デフラグ」を実行してください。場合によっては、「スキャンディスク」の実行が必要なこともあります。

おわりに

以上のような手順で基本的なパフォーマンスを僅かですが向上できます。が、やはり劇的な効果は現れにくいです。物理的にメモリの量を増やす以外に根本的な解決策はありません。

メモリを増設する場合は、値段と容量の関係をよく考えて、コストパフォーマンスが高くてなるべく容量の大きいものを選びましょう。容量がトップクラスのものは、容量に比べて値段が高い場合が多いです。

また、メモリを買う前にはあらかじめ、本体(マザーボード・その他の部品)の仕様・相性対応表やパソコンの説明書をよく読みましょう)と、現在使っているマザーボードに搭載できるメモリの量の上限を調べておきましょう。もし、買った後で「仕様が合わなくて動作しない」とか「メモリの上限を超えていたため認識できない」といったことが分かっても、多くの場合、「不良品」ではないため返品を認めてもらえません。

番外編:仮想的にメモリを増やす?

メモリ中の使っていないデータを圧縮することでメモリ回りのパフォーマンスを向上させるソフトとして、「メモリ圧縮ユーティリティ」というものがあります。「 Magna2000 ( Quarterdeck 社製 ) 」などが有名ですが、これを利用すると、実際に搭載しているメモリが少なくても、メモリを増やしたようにパフォーマンス向上が図れるということで、かつてはそこそこ人気もありました。が、メモリ管理という OS の動作の根幹に横やりを入れるという性質上 OS 全体の安定性を損なわせる上、メモリの市場価格が下がったことで、実際にメモリを増設する方が同じ投資額で得られる効果が大きいということなどから、今ではすっかり廃れてしまいました。

旧型のマシンなどで、メモリスロットが全部埋まってしまっていてこれ以上増設できない……という場合には、こういったユーティリティに頼ってみるのも一つの手でしょう。