Windows 7の動作が軽快な理由



 マイクロソフトは5月20日に、プレス向けにWindows 7の機能を紹介するセミナーを開催した。PC専門以外の報道関係者も対象としていたため、このイベント中で紹介された話の多くは、すでにPC Watch読者にはお馴染みの話ばかりだろう。しかし、セミナーの合間には、いくつか興味深い話を関係者から聞くことができた。

 中でも個人的に興味を引いたのが、“Windows 7の軽快さ”に纏わる話である。

 Windows 7 RC1はベンチマークの具体的な数値を公開することが、まだ許されていない。すでに、多くのテスターが“軽い”というインプレッションを伝えている通り、実際にインストールしてみれば軽さは実感できるが、その根拠として今まで公に理由として挙げられていたのは、初期起動プロセスの少なさだけだった。

●起動プロセスのマジック

 初期起動プロセスは前々回のコラムで紹介したように、Vistaが61個に対してWindows 7は49個。数字の上ではWindows XPの40個より多いものの、ファイルシステムの改良やOSの起動プロセスそのもののチューニングにより、起動時間はWindows 7の方が高速になる。

 前述したように現時点ではベンチマークによる数値比較をこの連載では行なえないが、マイクロソフト発表の環境(Core 2 Duo/2.4GHz、メモリ2GB)による数値だと、Windows 7、Vista、XPは、それぞれ29.19秒、40.17秒、32.93秒で起動したとある。

 これはOSをクリーンインストールした直後の数値のため、あくまでも参考値にしか過ぎないが、筆者の手元でも同様の差を計測できており、高速に起動することは間違いない。また走っているプロセスが少なければ、起動後の動作が軽快であることは容易に想像できるだろう。

 たとえばVistaの場合、持ち歩き用の軽量なモバイルPCにUltimate版を入れてしまうと、初期起動プロセスにモバイルPCには不要なもの(たとえばMedia Center関係のサービスなど)が多すぎてメモリを浪費し、動作が重くなることがあった。しかし、同じPCにWindows 7(現在、テスト用途ではUltimateしか提供されていない)を入れると軽快ということからもわかる。

 しかし、起動後に使い続けていれば、これら起動プロセスは増えていくものだ。たとえばMedia Center関係のプロセスが起動していないといっても、Media Centerを動かせばプロセスが開始され、サービスを停止するまでは動いたままになる。

 どっちにしろ起動されてしまうならば、単にロード時間が分散されているだけで、パフォーマンスが良いとは言わないのでは? という疑問を持つ人もいるはずだ。しかし、ここで重要なのは体感的に軽く動作するかどうかが問題だ。以前にもコラムで触れたことがあるが、Vistaのカーネルそのものは(特にSP1以降)XPのカーネルよりパフォーマンスが良い。端的な例はファイルコピーやファイルサーバーとの通信スループットなどだ。

 カーネルのパフォーマンスが良いのに、なぜ重く感じるのか。それはユーザー操作に対するレスポンスが重かったからだ。操作に対する応答が悪ければ、処理スループットが同じか、あるいは僅かに改善されていたとしても遅く感じる。

 特に出先でPCを出して、手早くメモしたりメールをチェックするといった時は、絶対的な処理速度の優劣よりも、レジューム後の応答性など“表面上の速度感”をパフォーマンスとして感じる。Vistaはその部分があまり良くなかったため、XPの方が良いと感じるケースがあった。

 何度も繰り返し書いてきているので、“またか”と思われるかもしれないが、CPUやメモリ、GPUなどが同一ならば、OSを変えたからといってアプリケーションのパフォーマンスに顕著な差が出るわけではない。ユーザーが感じる速度感を、いかに“演出”するかが重要ということになる。実はこの点で優秀だったのがMac OS Xで、徐々にOSが軽くなっているように見える理由の1つは、ユーザーに対する“見せ方”が良かった。

 Windows 7では、このあたりのチューニングが徹底されているように思う。エンドユーザーが直接触れるクライアント向けOSなのだから、何よりもエンドユーザーの快適性を重視しようというわけだ。サービスにしても、一度に読み込めばユーザーは長く待たされる上、起動プロセスが完全に完了するまでは、操作可能になったあとも重い状況が続く。サービスの起動を分散させ、必要な時に必要なものだけ呼び出せるように最適化されている。だから、Windows 7ではUltimate版が重いといって避ける必要はなく、Ultimateの中に必要と思う機能があれば、小さなノートPCでUltimateを使っても、(ライセンス料金はともかく)重さが変化することはないわけだ。

●メモリ管理が優秀になったWindows 7

 また、起動後にしばらく使っている状態でも、Windows 7は軽いままの動作をできる限りキープしてくれる。Windows 7の開発責任者である上席副社長のスティーブン・シノフスキー氏は2008年10月のイベントで「1GBメモリのネットブックでも充分に高速」と話した。1つには前述したようなユーザーレスポンス優先の設計方針が、そのバックボーンとしてあったが、もう1つはどうやらメモリ管理のチューニングが進んだことが大きいようだ。

 アプリケーションのロード時など、メモリを割り当てる際のパフォーマンスが大きく向上しているとのことだが、それに加えてOSの消費するメモリが大幅に減っている。消費メモリが減ったのは、主にDesktop Window Manager(DWM)の消費するメモリが減ったからだ。

ネットブックでも軽快に動くWindows 7のAero Glass

 Widnows 7とVistaは(機能こそ違うものの)いずれもAero Glassによる半透明を多用したユーザーインターフェイスを持つ。Windows 7の方が、より演出が凝っていたり、新しい機能が加えられているのだが、いくつもウィンドウを開きながらPCを使い続けていると、Windows 7の方が軽い。

 マイクロソフトによると、実はWindows 7が軽くなっているのではなく、Vistaが徐々に重くなっているのだという。Vistaは開いたウィンドウの数に比例してメモリ消費が増え、40個になるとDWMの使うメモリは300MBを超える。ところがWindows 7ではメモリ消費は初期状態から全く変わらない。これはDWM内のAero Glassを用いたデスクトップ描画の構造が変わったためだ。

 Vistaの時点ではGPUのパフォーマンストレンドが読みづらかったことや、ドライバチューニングの問題もあったため、ユーザーインターフェイスに関わるDWMの描画はDirect 3Dを通さず、MIL(Media Integrate Layer)という、Windows内の処理レイヤーに対して描画の指示を直接出していた。

 MILというのはDirectXよりも下位に位置する層で、2D、3Dの描画はもちろん、音や動画といったWindowsがサポートするあらゆるメディアストリームを統合する役割を持っている。MILに直接働きかけた方が、パフォーマンスの面で良いとVistaの時は判断したのだろう。だがMILは複数のメディアストリームを統合する役割をする部分なので、ここには正確な描画ストリームをキューとして流し込まねばならず、メモリ管理も自前で行なう。

 ところが事情は変化した。GPUによるアシストが十分期待できるほどDirectX 10.1のサポート状況が改善したこともあり、Windows 7のDWMはMILではなくDirect 3Dを用いて描画を行なうようになる。Direct 3Dでは、DirectXのランタイムとドライバがメモリ管理を行なってくれるため、メモリの利用効率が向上し、DWMが独自にメモリバッファを多く持ってウィンドウ描画の情報を管理しなくてよくなった。

 こちらも体感速度の経験則と合致している。多くのメモリを搭載するPCならば差は体感するほどでもないが、パフォーマンスが低く搭載メモリ量が限られたPCでは、起動後に使い続けているとジワジワと効いてくる。

 以前、Windows 7は軽いと書いたところ、一部の読者から「手のひらを返したようにVistaより良くなったと言われても、理由がわからなければ信じられない」といった反応をもらったことがある。

 その後、パブリックβの実施とともに、そうした意見は少なくなってきたが、実に細かなチューニングの積み重ねがWindows 7の印象を改善したのだ。1つずつの差はドラスティックなものではないが、積み重なると大きな差となる。

 おそらく、他にも公にしていない改良点は多数あるのではないだろうか。Windows 7は、開発責任者の舵取りによって、Vistaの時とは全く異なるものになっている。

●RC1を評価する上での注意

 RC1テスターの公募が5月7日から行なわれ、またMSDNやTechNet Plusなどからのダウンロード提供も開始されたため、すでにWindows 7をインストールしているという読者も少なくないだろう。筆者も7台のPC(ネットブックが1台あるが、それ以外はいずれもWindows Vistaマシン)にインストールしたが、そのうち2台にはインストールが全く行なえなかった。

 パブリックβの段階でも95%のPCにインストールできたということなので、決してRC1の互換性が低いわけではないが、しかし過信は禁物だ。RC1はリリース候補第1版という意味だが、広域テスト用のバージョンであることに変わりはない。

 1台はアップグレードインストールの途中にインストーラがプロセスを中止し、元の環境へと自動的にロールバックした。ロールバックのプロセスは完全なもので、元の環境は全く損なわれていなかった。クリーンインストールを行なうとWireless USBがうまく動作していなかったので、プリインストールで組み込まれているWireless USBのドライバが問題だったのかもしれない。

 もう1台はアップグレード、クリーンインストールともに成功したが、いずれもしばらく使っているとブルースクリーンが出てしまう。こちらも何らかのドライバがトラブルを起こしているようだが、原因は特定できなかったためインストールを諦めている。

 個々のケースについてWindows 7 RC1のバグレポートを入れておいたが、一概にうまくいくケースとうまくいかないケースを切り分けることはできない。

 マイクロソフトに“どんな条件でロールバックし、どんな条件で動作しなくてもインストールできてしまうのか? ”と質問してみたが、おそらくはドライバの問題だろうとしながらも、やはりケースバイケースで一般的な答えはないと話していた。

 Windows 7のRC1は、マイクロソフトの担当者自身が話しているように、これまでにリリースされてきたWindowsのテストバージョンの中でも、特に高い互換性と品質を備えていると思うが、かといって不用意にはインストールしないよう、しつこいようだが必要なデータはバックアップしておくように、そして可能ならテスト専用PCを用意するよう、これからRC1のテストに挑戦する読者には勧めておきたい。

バックナンバー

(2009年 5月 21日)

[Text by本田 雅一]