部下Hのマシンは2GBもメモリを積むこととなった。
こいつのマシンは入社した時に買って来たP4 2.4GHzで、弊社の普通の人が普通に使っているマシンと同じ。まー細かい差異はあるのだろうけど、だいたい同じ頃に入社した人達は、同じようなスペックで使っている。
私はそれとは別にある日ぷらっとで安かったので衝動買いをした、P4 Xeon 2.4GHz x 2である。ハイパースレッドでCPUは4つあることになっている。メモリは1GBで、今朝までは社内最強マシンだった。とは言え、メモリがあるのをいいこ とにいろいろ重いことをしてしまっているので、かなり重い。
Hのマシンは再インストールということで、私の作ったミドルウェアも再コンパイルすることになった。もちろんソースから入れるしかないのでmakeをする。
これが速いのだ。とんでもなく速い。見ているとCPUを完全に使い切って動いている感じである。まぁミドルウェアと言っても私が書いたものだか ら、そんなにデカいわけじゃない。つまりメモリの中にソースから何からみんな入っているわけだ。そうなると、メモリがデカいシステムだと、swapもしな けりゃバッファのお陰でI/Oすらほとんどない。つまりCPUは待つことがない。
そうなると、いかにCPUの利用効率やらスケジューリングやら工夫されていようと、若干メモリが不足して待ちの発生しているマシンでは、メモリがいっぱいあるマシンに負けてしまう。せっかくの「CPU 4つ」が意味がない。
そりゃもちろんスケジューリングの効いて来るような、生きてるプロセスがいっぱいあるような状態になれば、多少メモリが不足していても全体の処理 効率は私のマシンの方が速いだろう。しかし、「コンパイルの速度」みたいなものの比較だと、メモリ潤沢な方が圧倒的と言えるくらい速い。
今時だと、CPUにかける金はメモリにかけた方がお得だと言うことですな。あたり前っちゃーあたり前なんだけど、今日は思い知らされた。