連載
» 2010年06月03日 00時00分 公開

64bit Windows時代到来:第1回 64bit Windowsのメリットとは (3/3)

[打越浩幸,デジタルアドバンテージ]
前のページへ 1|2|3       

メリット2――アプリケーションで利用可能なメモリの増加

 64bit版Windows OSでは従来のWin32というAPIのほかに、Win64という64bit対応のAPIセットを備えている。これを使うように作られたアプリケーションを一般に「64bitアプリケーション」という。64bitアプリケーションを使う最大の目的およびそのメリットは、広大なユーザー・メモリ空間のサポートによる、パフォーマンスの向上であろう。Win32ではユーザーのプロセス空間は最大でも2Gbytesしかないが(設定によっては3Gbytesまで拡大可能。詳細は次回解説する。この中にユーザーのコードやデータ、スタック、DLLなど、さまざまなものが詰め込まれる)、Win64ではユーザー空間は8Tbytes(Win32の場合の4000倍)にまで拡大されている。

 一般的なオフィス・アプリケーションやユーティリティではこのような広大なユーザー・プロセス空間は必要ないだろうが(つまり32bit版でも十分だろうが)、データやファイルを大量に操作するアプリケーションでは2Gbytesでは不足することがある。Server OSの領域では、データベース・サーバやExchange Serverをはじめとして、すでに64bit版アプリケーションが広く普及している。クライアントPCであっても、マルチメディア・データの編集やグラフィックス・ソフトウェアなどで64bit版の利用が進んでいる。32bit版の場合は、メモリ上に格納できない分のデータをディスクに一時的に退避したり、必要に応じてロードしたりするなどの処理を行っていたが、64bit版のアプリケーションでは十分なメモリさえあればすべてオンメモリで保持、操作できるので、高速な処理が期待できるからだ。

 以下は64bit版アプリケーションが提供されているAdobe Photoshop CS5 Extended(以下Photoshop CS5)の例である。Photoshop CS5では、オンメモリに格納できないほど大きなサイズの画像データはディスク上に一時的に保存して処理しているが、64bit版のPhotoshop CS5では、Windows OSの空きメモリ領域いっぱいまでワークエリアとして設定できる。8Gbytes程度のメモリを搭載していれば、現実的にはほとんどの作業をオンメモリで処理できるだろう。

■32bit版Adobe Photoshop CS5 Extendedの設定画面

■64bit版Adobe Photoshop CS5 Extendedの設定画面

Adobe Photoshop CS5 Extendedにおける作業用物理メモリ・サイズの設定
Adobe Photoshopでは、ここで示したサイズまで物理メモリを使用し、それを超える作業領域が必要な場合はディスクへ退避して作業を進める。オンメモリでの処理と異なり、ディスクに対する入出力が発生すると処理速度が低下するので、なるべく多くのメモリをPhotoshop CS5に割り当てておくとよい。Adobe製品ではPremierなど、メモリを多く利用するいくつかのアプリケーションで64bitネイティブなアプリケーションが提供されている。
 (1)Photoshop CS5が認識している空きメモリ・サイズ。32bit版OSなので、せいぜい3Gbytresまでしか利用できない。
 (2)(1)のサイズまでキャッシュに利用できる。
 (3)このサイズをキャッシュに利用する。
 (4)スライダ・バーで調整できる。
 (5)64bit版アプリケーションの場合は、約11Gbytesまでキャッシュに利用できる。
 (6)10Gbytesを指定してみた。

 32bit版と64bit版のPhotoshop CS5実行中のタスク・マネージャの画面を次に示す。どちらも同じサイズの画像データを編集しているところであるが、32bit版では最大3.4Gbytesのメモリまでしか使用していないのに対し、64bit版ではプロセスのサイズが9.4Gbytesにもなっている。

■32bit版Adobe Photoshop CS5 Extendedを実行中のタスク・サイズ

■64bit版Adobe Photoshop CS5 Extendedを実行中のタスク・サイズ

32bit版と64bit版のアプリケーションの違い
ここでは64bit版のWindows 7上で、32bit版と64bit版の両方のAdobe Photoshopを実行させ、使用メモリ量の違いを確認している。どちらも同じ大きさの画像を編集しているところである。
 (1)32bit版のAdobe Photoshopのプロセス。64bit版のWindows OS上で32bitアプリケーションを実行すると、このように末尾に「*32」と表示される。
 (2)このタスクの使用メモリ・サイズは3.4Gbytesである。
 (3)64bit版のAdobe Photoshopのプロセス。末尾に「*32」という表示はない。
 (4)このタスクの使用メモリ・サイズは9.4Gbytesである。32bit版よりも多くのデータをオンメモリで処理しているため、高速である。

メリット3――より多くの32bitアプリケーションの同時実行

 64bit版Windows OSではWin64 APIがOSカーネルのネイティブAPIとして提供されているため、システムの性能を最大限に引き出すためには、64bitアプリケーションを利用するのが望ましい。しかし64bit版Windows OSは互換性のために、従来の32bitアプリケーションのバイナリ・コードをそのまま実行するための仕組みも備えている(WOW64。詳細は次回解説)。その結果、ユーザーはアプリケーションが32bitであるか64bitであるかを意識することなく、そのまま利用できる。

 ただし16bitアプリケーション(Win16アプリケーション)は利用できないとか、32bitと64bitのDLLの混在が許されない、32bit版デバイス・ドライバは利用できないなど、いくつか問題となる点もあるため、誰にでも無条件に64bit版Windows OSをすすめられるわけではない(詳細は次回解説)。

 さて、64bit版Windows OSでは従来の32bitアプリケーションもサポートされているわけだが、64bitアプリケーションをまったく所有していない、もしくは使うつもりがないユーザーであっても、64bit版Windows OSを導入すると何か恩恵があるのだろうか?

 この疑問に対する答えは簡単ではないが、純粋に技術的な視点からだけ見れば、32bitアプリケーションしか使わないユーザーであっても十分にメリットがある。64bit版Windows OSでは利用可能なメモリ・サイズが多くなるため(システムに搭載したメモリをすべて利用できる)、同時に実行できるプロセスの総数が増えるからだ。例えば1つ当たり512Mbytesのメモリを必要とするプログラムがあるとすると、4Gbytesのメモリを搭載した32bit版Windows OS上では単純計算で6つ実行できる(利用可能なユーザー・メモリを3Gbytesとした場合)。これが例えば8Gbytesのメモリを搭載した64bit版Windows OSであれば、利用可能なユーザー・メモリは7Gbytes以上あるはずなので、14プロセス以上を同時に実行できる。もっとメモリが多ければ、さらにこの差は広がるだろう。

多数のプロセスを実行できる64bit版Windows OS
64bit版Windows OSは利用できるメモリ・サイズが多いため、たとえ32bitアプリケーションしか持っていなくても、このように同時に多数のアプリケーションをオンメモリで処理できる。
 (1)Windows OSに付属の「ペイント」アプリケーションで大きなファイルを開き、同時に8個実行している。
 (2)1つあたりのプロセス・サイズは700Mbytes〜800Mbytesもあるので、32bit版Windows OSでは4〜5個しか、オンメモリでは実行できない。64bit版ならば、より多くのプログラムをオンメモリで実行できる。

 64bitアプリケーションではないが、Virtual PCやHyper-Vなどの仮想実行環境もOSの64bit化による恩恵を受けるアプリケーションの典型例といえる。仮想マシンを利用する場合、1マシンにGbytes単位でメモリを割り当てることが少なくない。32bit版Windows OS環境において、例えば1Gbytesのメモリを割り当てた仮想マシンを実行する場合、同時に実行できるのはせいぜい2つぐらいまでだろう。だが64bit版Windows OSであれば、物理メモリの許す限り仮想マシンを同時に実行できる。物理メモリが8Gbytesあれば、同時に6つとか7つぐらいは実行できる。このように、大量にメモリを要求するアプリケーションをよく利用するなら、64bit版Windows OSの導入は検討に値するだろう。

メリット4――システム・キャッシュ・サイズの増大

 64bit版Windows OSによる4つめのメリットは先ほどのものと重なるが、利用可能なメモリ・サイズが増加することによる、システム・キャッシュ・サイズの増加があげられる。物理メモリはOSやアプリケーションのプログラムやデータなどを置くために使われるが、未使用の部分(空きメモリ)はシステム・キャッシュなどとしても利用される。システム・キャッシュとは、一度使ったファイルを残しておき、後で必要となった場合にディスクからではなくメモリから読み出すための機能である。システムのパフォーマンスを向上させるためには、なるべく大きなキャッシュ・サイズを確保しておきたい。

 だが、32bit版Windows OSでは3Gbytes程度のメモリしか利用できないため、キャッシュとして確保できるサイズは多くても2Gbytes程度だろう。これと比べると、64bit版Windows OSでは利用可能なメモリ・サイズが増加しているので、例えばシステムの起動直後ならばメモリ全体の7割とかそれ以上のシステム・キャッシュ・サイズを確保できる。これは大きなメリットといえる。

■32bit版Windowsにおけるシステム・キャッシュ・サイズ

■64bit版Windowsにおけるシステム・キャッシュ・サイズ

OSの違いによるシステム・キャッシュ・サイズの差
32bit版Windows OSでは利用可能なメモリが3〜3.5Gbytesに制限されているため、システム・キャッシュ・サイズもそれに合わせて制限されている。
 (1)キャッシュとして利用しているメモリ・サイズ。このシステムの場合は多くても3Gbytesまでである。
 (2)64bit版Windows OSの場合。9Gbytesまでキャッシュ領域が増加している。ただしほかのプロセスなどを起動すると、この領域は解放される。キャッシュ領域はほかのメモリ需要に合わせて動的に変更される。

64bit版Windows OSは買いか?

 以上、今回は64bit版Windows OSのメリットについていくつか述べてきた。これ以外にも理由はあるだろうが、最終的には4Gbytesを超す大容量のメモリ(と64bit命令セット)を使いたいかどうか、64bitアプリケーションを持っているかどうか、によって決まるといえる。使い勝手についていえば、64bit版Windows OSにしたからといって特に従来との違いは感じられないだろう。むしろ、何も問題が起こらないことに拍子抜けしてしまうかもしれない。

 とはいえ、これはすべてがうまくいった場合の話である。64bit版のデバイス・ドライバが提供されていない場合は、そのデバイスの使用をあきらめるか、なんらかの代替手段を講じるなどの対策が必要になる。また64bit環境では16bitアプリケーションはサポートされていないため、そのようなアプリケーションを持っている場合はトラブルになる可能性があるからだ。

 次回はWin32アプリケーションの実行を可能にするWOW64や、内部から見た64bit版Windows OSなどについて取り上げる。


「64bit Windows時代到来」のインデックス

64bit Windows時代到来

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。