稼働中のWindows 7の46パーセントが64ビット版であるという(関連記事)。Windowsウォッチャーを自認し、「Vistaが「遅い」と感じませんか?」「Vistaが『遅い』と感じませんか?その2」「64ビット版Vista最大の欠点」といった記事を書いてVistaの64ビット版を推奨してきた記者としては、ここはどうしても、64ビット版Windows 7のメリットと、それを享受するための注意点を書き記しておきたい。

 64ビットWindowsのメリットをひとことで言うなら「大きなメモリーを使える」だ。32ビットWindowsでは、PAE(Physical Address Extension)を使う場合を除き、物理メモリーは最大4Gバイトである。64ビットのWindows 7では、Home Basicなら8Gバイト、Home Premiumなら16Gバイト、Professional以上なら192Gバイトが最大値だ。

 とはいうものの、「そんなにメモリーがあっても…」と思ってしまう人もいるだろう。そういう議論はパソコンを巡って20年以上繰り返されてきたのだが、今回もやはり、最後は大きなメモリーを活用する形で決着するだろう。Windows 7において、なぜ大きなメモリーが嬉しいのか。四つの視点から述べる。

利点(1)ディスクキャッシュが増える

図1●Windows 7のタスク マネージャーで「キャッシュ済み」の欄を見ると、ディスクキャッシュにどの程度のメモリーを使っているかわかる。この画面では約5.6Gバイトだ
[画像のクリックで拡大表示]

 大きなメモリーの第一の利点は、ディスクキャッシュが大きくなることだ。図1はメモリー8Gバイトを積んだパソコンのタスク マネージャーだが、「キャッシュ済み」の欄が「5608」と表示されている。約5.6Gバイトのメモリーがディスクキャッシュとして利用されているわけだ。

 ディスクキャッシュがこのくらいあると、頻繁に利用するファイルのほとんどが収まるため、ファイルを開いてアプリケーションを起動する時間が短縮される。パソコンの快適な動作を表現して「さくさく」という言葉が使われることがあるが、まさにそうなる。

利点(2)32ビットのプログラムで4Gバイト使える

 32ビットWindowsで32ビットプロセスが利用できるメモリー(ユーザーモードの仮想アドレス空間)は最大2Gバイトだ。4GT(4-gigabyte tuning)と呼ばれるチューニングをすれば3Gバイトまで増やせるが、弊害もあるので誰にでも勧められるチューニング方法とは言いがたい。それが64ビットWindowsなら、簡単に4Gバイトになる。

 図2はVisual Basic 2010 Express(Visual Studio 2010の無償版であるVisual Studio 2010 Expressの一部)で作成した、メモリー不足を意図的に引き起こすプログラムだ。32ビットでビルドして普通に実行すると、約0.75Gバイト、約1.1Gバイトの配列は作れるが、さらに増やそうとしてメモリー不足で停止してしまう。

 Visual Studio 2010に付属するEDITBINコマンド(図3)を使い、先ほどの32ビットプログラムに/LARGEADDRESSAWAREの指定を与えたところ、配列をさらに大きくできた。メモリー8Gバイトの64ビットWindows 7では、配列の大きさを約2.6Gバイトまで増やせた。

図2●Visual Basic 2010で書いた、大きな配列を作ってメモリーを使い切るプログラム
[画像のクリックで拡大表示]
図3●32ビットのプログラムでも、EDITBINコマンドで/LARGEADDRESSAWAREオプションを付けると2GB超のメモリーを利用できる
[画像のクリックで拡大表示]

 /LARGEADDRESSAWAREによるアドレス空間の拡大は、Visual C++など、他のプログラミング言語で作ったプログラムにも適用できる。日経ソフトウエア2010年9月号(好評発売中!)の特集2「マルチコアを使いこなせ!並列プログラミング入門」では、並列化の例題として、Visual BasicとVisual C++で素数の一覧を作るプログラムを取り上げ、そこでは/LARGEADDRESSAWAREが大活躍であった。これだけでメモリー空間が広がるのだから、ラッキー!という感じである。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら