2010年4月2日金曜日

64ビットOSの方が32ビットOSより優れていると思ってはいけない、らしい

HP Pavilion Desktop PC HPEシリーズ 春モデル
[プラットフォーム編]64ビットOSの方が32ビットOSより優れていると思ってはいけない:ITpro
コラム内容はサーバーのお話なのでPCにそのまま当てはまらないこともありますが、参考になったのでここにメモしておきます。 

CPUが64ビット・アーキテクチャだから64ビットOSを選択するのがベストだと単純に考えてはいけない。
32ビット・アプリケーションは,OSが64ビットであっても64ビット・モードの恩恵は受けられない。
ふむふむ、そうですね。

64ビットOSを利用するメリットのうち最も大きなものは,メモリー利用の制約を超えることができる点であろう。32ビットOSでは通常4Gバイトまでの物理メモリーしか扱うことができない(中略)一方,64ビットOSの場合は,論理的には約1678万Tバイトのメモリー空間を扱うことができる。
さらに重要なのは,一つのプロセスが扱うことのできるメモリー空間のサイズだ。OSは,実際に搭載されている物理メモリー以上のメモリー空間を論理的に利用可能とする仮想記憶の仕組みを持つ。この場合メモリー・アドレスは,仮想アドレスで管理される。32ビットOSでは,仮想メモリーのアドレスも32 ビットに制限される(32ビット版Windowsの場合にはその半分をOSに割り当てるため,アプリケーションは2Gバイトしか利用できない)。64ビットOSでは,この制約も解消される。
以上が64ビットOSのメリットです。 デメリットは以下の通り。

ただし問題は,メモリー上に展開されるデータの量だ。64ビット・アプリケーションを稼働させる場合,アドレスを保持するためのポインタが倍のサイズになってしまう上,CPUの命令コードのサイズも大きくなる。そのため,プログラムのバイナリ・サイズが大きくなるのである。
プログラムが無駄にでかくなってしまう問題が発生するようですね。

ファイルからデータを検索するような処理では,サイズ増加に伴う性能劣化が発生する

アプリケーションが利用するメモリーの最大容量が32ビットOSの制約である仮想メモリーの最大利用可能サイズを超えないのであれば,32ビットOS上で 32ビット・アプリケーションを利用した方が,処理性能が高くなる可能性がある。64ビットOSにこだわる必要はない。
適材適所。 コンパクトで済むならそれに越した事ないというお話でした。

リンク さくら
ASCII.jp:32bitアプリを64bit Windows 7で動かす「WOW64」|あなたの知らないWindows
ASCII.jp:32bit vs 64bit Windows 7を入れるならどっちだ?|買う前に知っておきたいWindows 7のアレコレ特集