一般ユーザ向けによく言われるメリットとデメリットをさらっと。
- 32ビットOSは3.3GB程度までしかメモリを使えない
- 64ビットOSは大きなメモリを搭載可能(Win7Home:16GB、Win7Pro:192GB)
- 64ビットOSはソフトやドライバが対応していないものがある
- 専門的な処理を含む64ビット版に対応した特殊なソフトは速くなる
メモリが3GBでも足りなくてそれ以上積みたいという人や特殊なソフトを使う人は、もっているソフトや周辺機器が動かなくなることを覚悟の上で64ビットに乗り換えましょう。そうでもない人は32ビット版を選ぶのが無難です、とか。そんな感じの内容のサイトがいくつかありました。
こちらのサイトでは、実機を使いベンチマークで実測していました。このサイトの結論ではWin7では64ビット版のほうが10~20%ほど性能が向上するということです。浅い抽象的な総論にとどまるサイトもある中で、このような具体的な調査は非常に参考になります。
…と、大体のサイトではメリットが書かれています。デメリットについてはドライバ云々というレベルのことしか書いていないサイトが多かったです。
64ビットOSのデメリット
しかし実は上記以外に大きなデメリットがあります。一般ユーザ向けのサイトにはなかなか書いていないことなのですが、64ビットOSにするとメモリの消費量が増えるという点です。例えば、今まで300MBのメモリを使用していた処理が、同じアプリ同じ処理でも400MBになったりするということです。
これはデータの格納場所を指し示すポインタが倍のサイズになるからです。またポインタだけが倍になるのはLLP64を採用しているWindows系の話で、LP64を使用するUnix/Linuxでは、long型のサイズも倍になります。※LLP64・LP64・long型・Unix/Linux等の説明は省きます。気になる方はWikipediaなどで確認してください。
大事なことは、64ビットOSにするとメモリの消費量が増えるという点です。
Wikipediaには以下のように書いてありました。
64ビットアーキテクチャでの主な問題点は、32ビットアーキテクチャに比較して同じデータが占めるメモリ領域が大きくなる可能性がある点である(ポインタサイズの増大と、他のデータ型のサイズ増大、境界整列のためのパディングによる)。これによって、同じプログラムであっても必要とするメモリ量が増え、キャッシュ効率が低下する。
Oracleにはこんな記述もありました。
What are the default heap sizes for 64-bit VMs if GC ergonomics is not used?
The default heap size for all 32-bit J2SE implementations is 64MB. We have adjusted the defaults for 64-bit implementations to be 30% larger in order to make up for the increased size of Java objects due to larger native pointers. Remember that Java objects contain class and lock pointers so even if you create Java objects which contain only integers, each object takes up additional memory.
要約すると、「64ビットのVMのデフォルトのヒープサイズは、オブジェクトの大型化を補うために、32ビット版に比べ30%程度大きく調整した」という感じです。サイズはオブジェクトの構成によりますので、どんなケースでも一律30%大きくなるということはありえませんが、そのくらい大きくなることもあるという程度に考えておけばいいと思います。
Adobe Photoshopでは64ビット版の方が遅くなるケースも…?
また、例えば画像編集ソフトの定番のAdobe Photoshopでは、64bit版を選択してインストールをしても、なぜか強制的に32bit版のソフトまでインストールされます。64bit版にデメリットがないのであれば64bit版だけでいいはずですが、なぜなのか。
Adobeのヘルプのページでは、サードパーティ製プラグインが対応していないことがあるというデメリットが記述されています。しかし他に、処理速度に関してこんな気になる記述もありました。
64 ビット版 Photoshop では、一部の処理の速度が向上しますが、すべての処理速度が向上するわけではありません。また、向上する速度も一定ではなく、およそ 8 ~ 12 %の幅で速度が向上します。概して 64 ビット版を使用する主な利点は、プロセッサー速度ではありません。
Photoshopの一部の処理は10%くらい速くなるよと。では他は…?こちらは個人のサイトになりますが、この方が計測したところ64ビット版のほうが遅い処理があるという結果が出たそうです。
Adobeが「すべての処理速度が向上するわけではありません」「64 ビット版を使用する主な利点は、プロセッサー速度ではありません」と、少し引っかかる表現をしている理由は、「遅くなる処理もあるよ」という意味なのかもしれませんね。
まとめ
64ビットOSは、32ビットOSより大きなメモリを使えるというメリットがあります。一方で古いソフトやドライバは64ビットOSに対応していないものもあり、動作しないこともあります。
さらにメモリ使用量は確実に上昇しますし、場合によっては処理速度が遅くなるということもあります。一般ユーザ向けのサイトにはなぜか書かれないこのデメリット(ライターのITスキルの問題?)。当然、一般の方ユーザにも共通していえることです。この点も考慮に入れ64ビットOSへの移行を検討しましょう。