「Windows 7は速い」と噂されている。実際にWindows 7 RC版を使ってみても、Windows Vistaと比べてパフォーマンスが大幅に向上していることを実感できる。では、Windows開発チームはどのようにしてこのパフォーマンス向上を実現したのだろうか?
MicrodoftのSenior Software Development Engineerである中原大介氏は、8月26日に開催された「Tech・Ed Japan 2009」のテクニカルセッションで、カーネルに関連する部分でのパフォーマンス改善のポイントを解説してくれた。
詳細な分析に基づくパフォーマンス改善
まず、パフォーマンスの鍵となるOS全体のリソース使用量についてだが、詳細な分析を元に「Footprint Reducation」として徹底的な削減を実施したという。ディスクやメモリ使用量、ファイルサイズなどを始めとして実に400項目以上の削減を行った結果、「長いWindowsの歴史の中で初めてOSが小さくなっている」(中原氏)のがWindows 7なのだそうだ。
メモリ使用量に関しても大きく改善されている。中原氏によれば、Desktop Window Managerのアーキテクチャを見直すことで、ウィンドウごとのメモリ使用量を約50%も削減できているそうである。また、レジストリをMemory Mapped FileからPaged Poolに変更することで大幅なパフォーマンスの向上を実現したとのことだ。
また、ワーキングセットも見直され、システムキャッシュとPaged Pool、システムコードがそれぞれ個別のワーキングセットで管理されるようになった。これによって各プロセス間の影響を最小限に抑え、それぞれのメモリ使用量に応じた最適化が可能になったという。
上記はユーザからは見えない部分、すなわちバックグラウンドで動いているシステムにおけるパフォーマンスの改善である。ユーザから見える部分、つまり実際にユーザーが体験するパフォーマンスについてはどうだろうか?
この点については、まず300以上のエンドユーザーシナリオを選定し、膨大な量のサンプルを用いて実際のパフォーマンスを計測。その結果を元にそれぞれのシナリオ毎にパフォーマンスのゴールを設定して改善を加えるというアプローチを取った。
データはカスタマエクスペリエンスプログラムを通して収集しており、リリース間近となった現在も改善を進行中だそうだ。
パワーマネージメントは「Keep idle and stay idle」
パフォーマンスと並んでWindows 7、Windows Server 2008 R2の大きなポイントとなっているのがパワーマネージメント機能の向上である。