また、もうひとつ大きな変更点としては、デスクトップに表示されているウインドウの数に関わらず、メモリー使用量が一定になっている点も上げられる。
Vistaではウインドウの数に比例して、メモリー消費量が増えていく。これは、ウインドウが作成されるごとにワーキングメモリーを増やしていたためだ。しかしWindows 7では、OS起動時にある程度のメモリーをワーキングメモリーとして確保する。DWMの変更により大幅にワーキングメモリーの使用率が落ちているため、起動時に確保される分を含めても、メモリーの消費量は増えていない。これはメモリー削減というよりも、パフォーマンス面からの改良だ。
Windows 7のDWMでは、マルチディスプレー環境などによりデスクトップの解像度が高くなっても、メモリー消費量は増えなくなったというメリットもある。
Windows 7ではレジストリのアクセス方法も変更
Windows OSでは、アプリケーションやOSが動作するために、さまざまな設定情報を参照する。この設定はOSが管理している「レジストリ」に記録されている。レジストリはいわば、OS側にあるデータベースのようなものだ。しかし、今まで以上に多くのプログラムがレジストリを参照するようになったVistaでは、レジストリアクセスの方法を、従来のMemory Mapped File方式からPaged Poolに変更した。
Memory Mapped Fileでは、言うなればひとつのファイルとして存在するレジストリのデータから、レジストリ管理プログラムが独自の方法で必要とする部分をメモリー上に読み込み、アクセスしていた。そのため別の場所のレジストリデータが必要になれば、ファイルから再度必要なデータを読み込む必要があった。
しかしWindows 7では、レジストリをメモリー上に保存するPaged Poolという仕組みを採用した。Paged PoolではOS標準のメモリー管理システムをそのまま利用して、レジストリデータのメモリーへの読み込みとスワップイン/アウトを処理している。そのためMemory Mapped File方式で使用していたメモリー分が削減できた。
またMemory Mapped Fileでは、レジストリにアクセスするためマップ/アンマップ(メモリーへの割り当てと解放)処理を繰り返していた。これが、パフォーマンス面でも悪影響を及ぼしていた。Paged Poolに変更したことでこの必要もなくなったため、パフォーマンスが向上している。
ワーキングセットの改良
Vistaではメモリーを「ワーキングセット」という考え方で管理している。ワーキングセットとは、各プロセスごとにメモリーを割り当てることだ。もちろんシステムにもワーキングセットが割り当てられている。Vistaのシステムワーキングセットの内部は、システムキャッシュ、Paged Pool、システムコードが一括して、言わば団子状態で入っていた。
例えば、Vistaで大きなサイズのファイルをコピーすると、システムのレスポンスが悪くなり、ネットワークが途切れるような状態が起こった。これはシステムワーキングセット内部にあるシステムキャッシュがどんどん消費されて、他のPaged Poolやシステムコードが使用できる領域を小さくしてしまったためだ。この時、OSのメモリーマネージャーはシステムキャッシュを拡張するために、システムコードをどんどんメモリー上からHDD上の仮想メモリーにスワップアウトしていく。これにより、システム全体としてはパフォーマンスが悪くなる。
そこでWindows 7では、システムワーキングセットをシステムキャッシュ/Paged Pool/システムコードの各領域ごとにきちんと分離した。おかげでファイルコピーなどでシステムキャッシュが増えても、Paged Poolやシステムコードが使用している領域を圧縮しないようになった。するとシステムコードがHDDにスワップされることも減ったので、システム全体のパフォーマンスがよくなるというわけだ。
この連載の記事
-
第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の性能と互換性の高さ - この連載の一覧へ