新・闘わないプログラマ No.122

メモリ


メモリの値段が、また下がってきましたね。 去年に一回下がって、128MBのDIMMが1万円を切ったあたりで買おうとしたのですけど、「いやいや、まだ下がるのでは」などと欲を出したら、その後、急に暴騰してしまって、買い時を逃してしまった、というよくあるパターンの私です。
そんなわけで、うちのデスクトップPCは、ずっとメモリが64MBという貧弱(特にNTを動かすには)なスペックのままでした。
ここにきて、やっと128MB DIMMが1万円を切るようになってきたので、今度こそは、とばかりに週末、秋葉原に行ってきました。
さすがにもうトシなので、安い店を探して秋葉原を徘徊する、という根性も無く、まあそこそこ安い店かな、というところで妥協しましたけど、128MBのDIMMを9千円ちょっとで買ってきました。
これでやっとうちのPCも192MBのメモリになって、NTも快適に動くし、VMwareも動かしてみることができるし(←あまり必要性は無いけれど、動かしてみたかったのね)、などと、思いつつ駅に向かったのですが……そう言えば、ノートPCの方、Windows2000を入れるためには、今の64MBじゃ足らないよなあ、こっちも増やさないといけないのではないかなあ、という悪魔の囁きが。
結局、ノート用のメモリまで買ってしまいました。こっちも128MBを増設しようか、などと一瞬思ったのですけど、財布と相談の上、とりあえず64MBで妥協することに。まあ、ノートの方は、あまり重い作業はやらないし、128MBもあれば十分かな、と。それに、ノートの場合、メモリが多いと、ハイバネーション(メモリの内容をディスクに保存してPCをシャットダウンさせる、起動時には、その内容をメモリに読みこむ)に時間がかかるようになるし、などといいわけしつつ。

家に帰って、さっそく取りつけてみました。しかし、メモリって、増やしても、メモリ量の表示を見て「おお、増えている」と言って喜ぶくらいで、特に遊ぶところが無いから、はっきり言ってつまらないんですよね。
だから、いつもメモリを買うのは後回しになってしまうわけですが。メモリが少ないから出来ない、っていうことってあまり無いですし。まあ、上に書いたVMwareなんかのように、64MBのメモリじゃそもそも使えない、というような奴もありますが、そういうのは例外的だったりします。
それはともかく、これでうちのPCも、デスクトップが192MB、ノートが128MBのメモリ、ということで、やっと世間様に顔向け出来るようになったのではないか、などと一人悦に入っていたりするわけで…。
そう言えば、ノートPCのハイバネーション、メモリを増やしたら当然遅くなるものとばかり思っていたのですけど……前より速くなった。いったい何故??

しかし、よくよく考えてみたら、うちにあるコンピュータで、今まで一番メモリが入っていたのは、Macintosh Quadra700っていう、今から8年くらい前のMacだったりして、こいつが68MBで、トップだったのですね。最近ではさすがに非力過ぎて立ち上げることも少なくなったこのMacが一番メモリを載せていた、というのが何ともはや。
このMac、標準搭載のメモリが4MBで、購入時に16MBのメモリを追加して、ずっと20MBで使っていました。
当時のPCの状況は、と言えば、Windows95やNTなど影も形も無く、Windowsは確かversion 3.0の頃だったと思います。Windowsがまだ、Excelのローダだ、と陰口を叩かれていた頃で(Excel以外にまともなWindowsアプリケーションが無かった)、DOSが全盛の頃のお話です。
もう知る人も少ない(かも知れない)ですが、DOSには640KB(または1MB)の壁、というやつがあって、OSやら、そのアプリケーションやらは、その640KBの範囲内に収まるようにしなければいけませんでした。だから、当時のPC(日本の場合はPC98が全盛でしたが)は、せいぜい1MB〜数MBのメモリしか搭載していません(搭載できません)でした。
これはDOSの制限というか、8086というCPUの制限なわけですけど、とにかくDOSのアプリケーションは、そういう少ないメモリをやりくりする必要があったわけです。まあ、いくらなんでもこれは少なすぎる、ということで、アプリケーションなどが利用できるメモリを拡張するためのいろいろな(姑息な)手段が生まれたりもしたわけですが。
とにかくそんな時代に、Macはメモリの制限がかなり緩かったのです。確か、System 6の頃は、アプリケーションが使えるメモリは8MB、それ以降はGBオーダのメモリが使えます。そんなわけで私もMacで20MBのメモリを使っていたわけですけど、当時、廻りからは散々言われました。
「お前、20MBものメモリ、いったい何に使うの?」
私の場合、Photoshopが使いたくてMacintoshを買ったのですけど、Photoshopにとっては、大量のメモリというのは非常に重要でした。いまでこそWindowsでもPhotoshopは動きますし、全然問題無く使えるわけですけど、当時は大量のメモリが使えたMacならでは、だったわけです。

話は変わりますが、私が就職した10ウン年前は、ちょうど、メインフレームの、プログラムが使えるアドレス空間が、16MBから数GB(2GBとか4GB)に増える頃でした。当時のメインフレームの実メモリは数10MB程度だったと記憶していますから、「数GBなんていう広大なアドレス空間、いったい何に使うんだろう」と思ったものですが、いまやPCの実メモリでも、そのくらいは簡単に行ってしまうんですよね。
私が就職した頃には、まだふんだんにメモリが使えない頃の名残が随所に残っていて、プログラマの意識も、「メモリの1バイトは血の一滴」みたいなことがありました。当時のIBMのメインフレームは、レジスタが32ビットなのに、アドレスは24ビットなので、残った8ビットを別の用途に使う、とか、そういう姑息……いやその、まあその、とにかくそういうテクニックが駆使されていたりして、プログラムが読みづらいことこの上なかったりしたわけです。
今じゃもう、PCからメインフレームまで、メモリがふんだんに使えるものだから、あまりそういうことを気にしなくなってきましたですね。組み込み用途のプログラムなどは、違うのでしょうけど、私はやったことが無いので分かりません。
今じゃ、メモリをわずかばかり節約して「年」を2桁で表す、とか、そういうことをしてあとで面倒になるよりは、ふんだんに使ってくれた方がありがたかったりします。
でも、前回のお話じゃないですが、関数の中でmallocして、freeを忘れて関数から抜けて、というのを繰り返して、そのプロセスの使用メモリがどんどん増えて行く、というのはちょっと……などと言いつつ、私もやったことがあったりする、というのは秘密です。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp