このページの本文へ

前へ 1 2 3 次へ

あなたの知らないWindows ― 第26回

メモリー使用量と性能を改善する7のカーネル改良

2010年04月15日 12時00分更新

文● 山本雅史

  • この記事をはてなブックマークに追加
  • 本文印刷

 Internet Explorer 9の話題が入って間が空いたが、連載の24回に続いて、今回もWindows 7のカーネルに関して解説しよう。


省メモリー化でパフォーマンスアップ

 Windows 7のカーネルは、Windows Vistaのカーネルを再構築して、コンパクト化している。さらに、Windows 7ではカーネルだけでなく、カーネルの上層に位置するさまざまなシステムプログラムを見直すことで、メモリーの消費量を小さくしたり、プログラムサイズ自体をコンパクトにしている。

Windows 7はVistaに比べて、OSが使用するメモリー量などが、20~30%削減されている Windows 7はVistaに比べて、OSが使用するメモリー量などが、20~30%削減されている。削減率はパソコンの環境によって異なるが、どの環境でもVistaより使用メモリー量は減っている(TechED 2009資料より引用、以下同)

 これらの成果によって、Windows 7ではOSが使用するディスク使用量やファイルサイズ、メモリー使用量などのリソースが、Vistaから70%ほど削減されている。OSが使用するリソースが削減されたことは、パフォーマンス自体にも影響してくる。特にOSが使用するワーキングメモリーの量が減ったことが、Windows 7のパフォーマンスの向上に寄与している。メモリーやストレージ容量の小さなネットブックなどでも、Windows 7がそれなりに快適動作するようになったのは、こうした背景がある。

 またWindows 7では、個々のシステムプログラムが内部で持っているデータのキャッシュを見直した。多くのプログラムでは、それほど頻繁に利用しないのにも関わらず、開発者の都合でキャッシュを作成していた。そこでOS全体でキャッシュを見直し、400項目以上を削除。これにより、OSが使用するデータキャッシュの量が少なくなり、OSのサイズも小さくなった。

Windows Server 2008 R2では、アイドル時のメモリー使用量は100MB Windows 7と同じコードを使っているWindows Server 2008 R2では、アイドル時のメモリー使用量は100MBほどになっている。GUIなどをいくつかのモジュールを省いたCoreモードでは100MBを下回っている

WDDM1.1と新しいDWMで省メモリー化

 Windows 7で劇的にワーキングメモリーの使用率を低減させたのが、デスクトップ画面を表示するための改良された「Desktop Window Manager」(DWM)とドライバーモデルの「Windows Display Driver Model 1.1」(WDDM1.1)だ。

 DWMやWDDM1.1の詳細については過去記事を参照していただきたいが、Windows 7では新しいグラフィックドライバーモデルのWDDM1.1が採用されている。WDDM1.1はDirectX 10.1世代のGPUを対象にして開発されているが、DirectX 9やDirectX 10対応のGPUでは、DirectX 10.1に足りない機能をCPUがソフトウェアエミュレーションで補うため、Windows 7のWDDM1.1でも動作する(関連記事)。

 DirectX 9対応のGPUがごく普通だった3年前に比べると、DirectX 10.1やDirectX 11世代のGPUは驚くほどの進化を遂げている。Vistaのリリース当時は、それほどDirectX 10ベースのGPUが普及していなかった(インテルチップセット内蔵GPUに至っては、G965世代でようやくDirectX 9にきちんと対応した程度)という事情もあったため、ウインドウ表示(GDI)はほとんどをソフトウェアで処理していた。

 しかし、さすがにWindows 7のリリース時期には、DirectX 10~10.1をサポートしているGPUが多くなり、ローエンドパソコンでもDirectX 9はサポートしているという状況になったので、WDDM1.1ではDirectX 10.1をベースとしたのだろう。また、「Warp10」と呼ばれる出来のいいDirectX 10のソフトウェアエミュレーションが完成したことも、大きな理由となっている。

 Windows 7とVistaでは、複数のウインドウを合成してひとつのデスクトップ画面にするためにDWMが使われている。しかしVistaで使用されていたDWMは、ワーキングメモリーを膨大に消費していた。これがVistaがメモリー食いのOSと言われた理由のひとつである。そこで、Windows 7ではDWMのアーキテクチャーを見直し、ワーキングメモリーの消費を減らすように改良された。

 Vistaでは、各アプリケーションが描画したウインドウ(ビットマップ)を、DWM管理下のDirectXサーフェスにコピーしていた。しかしWindows 7のDWMでは、アプリケーションが描画したウインドウは、直接DWMが管理するDirectXサーフェスに描画されるようになった。このコピーを止めただけで、メモリーの使用量は半分になる。

WDDM1.0でのメモリーの使い方 WDDM1.1でのメモリーの使い方
連載7回でも掲載した、VistaとWindows 7での描画方法の違い。VistaのWDDM1.0(左)では、各ウインドウ画面のデータをシステムメモリー上(オレンジ部)に持っている。一方Windows 7のWDDM1.1では、システムメモリー上にウインドウ画面のデータをコピーすることは止め、ビデオメモリーのDirectXサーフェスに持つ(Windows 7の開発担当者ブログより引用)

前へ 1 2 3 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

プレミアムPC試用レポート

ピックアップ

富士通パソコンFMVの直販サイト富士通 WEB MART

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン