GDIの同時実行を実現
Windows 7で、ウインドウ表示のレスポンスを高めているもうひとつの要素が、古くからある2DグラフィックスAPI「GDI」の同時実行機能だ。
Vistaでは、複数のウインドウを同時に表示する場合、各アプリケーションからのGDI命令を受けて、サーフェスに表示できるように変換する「GDIグラフィックスタック」が、排他制御で処理をしていた。GDI命令がGDIグラフィックスタックに渡されると、GDIグラフィックスタックがGPUにデータを順番に渡していた。
そのためVistaでは、あるアプリケーションのウインドウ表示が終了するまで、別のアプリケーションのウインドウ表示が待たされていた。そのときに、画面表示中のアプリケーションがHDD上の仮想メモリーからメモリーをページング(スワップイン)する必要が出た場合、GDIグラフィックスタックをロックしたまま、HDDからデータを呼び出すことになる。これもまた、画面表示に時間がかかる大きな理由になっていた。
そこでWindows 7では、GDIグラフィックスタックの機能を見直し、排他制御するのではなく、複数のアプリケーションが同時に、GDIによるウインドウ表示をできるようにした。
この変更により、アプリケーションのウインドウ表示のレスポンスが向上した。表示に時間のかかるアプリケーションがあっても、ほかのアプリケーションはロックされないため、待ち時間もなく、すぐにウインドウ表示できる。そのため、見た目上はウインドウ表示のパフォーマンスが向上しているように見える。
またGDIの同時実行機能は、最近主流になっているマルチコアCPUにとっても大きなメリットがある。VistaではGDIグラフィックスタックがボトルネックだったので、せっかくマルチコアCPUが複数のアプリケーションを同時処理できるのに、その能力を十分に生かせなかった。
しかし、GDIの同時実行機能によりボトルネックとなる待ち時間が少なくなるため、複数のアプリケーションを同時に動作させている環境では、マルチコアCPUのメリットを生かせるようになる。GDIの同時実行機能はWDDM1.1だけでなく、WDDM1.0でも使用できる。
小幅な改良の積み重ねで体感速度を上げるWindows 7
Windows 7は「軽い」「速い」と言われるが、根本的にアーキテクチャーを変更してパフォーマンスを向上させたわけではない。例えばグラフィックスベンチマークなどでは、WDDM1.1とWDDM1.0を比較しても、パフォーマンスはほとんど変わらない。
しかし、ユーザーが実際にWindows 7を使ってみると、体感パフォーマンスは向上している。前述のように、WDDM1.1は多数のアプリケーションが起動されても、使用するシステムメモリーが一定以上には増えない。このことが、Windows 7のレスポンスの良さに関わっているのだろう。
Windows 7は「速くなった」と言うよりも、ユーザーがパソコンを利用する際のレスポンスを高め、ユーザーが心地よくパソコンが利用できるように開発されているのだ。
この連載の記事
-
第50回
PC
次期IE「Internet Explorer 10」プレビュー版が公開 -
第49回
PC
RTM版も登場 Windows Home Server 2011の変更点とは -
第48回
PC
5秒で起動するSplashtop OSを自作パソコンで試す -
第47回
PC
ベンチで検証 Internet Explorer 9 RCの互換性と性能 -
第46回
PC
正式版の直前となるInternet Explorer 9 RC版が登場 -
第45回
PC
Silverlightをさらに進化させる「Silverlight 5」 -
第44回
PC
「Windows on ARM」が持つ意味と課題は何か? -
第43回
PC
GPUを利用できる仮想化ソフト XenClient 実践編 -
第42回
PC
複数のWindowsを使い分ける仮想化ソフト XenClient -
第41回
PC
3秒で起動しWindowsと共存するOS「Splashtop OS」 -
第40回
PC
最新版「PP7」に見るIE9の性能と互換性の高さ - この連載の一覧へ