このページの本文へ

前へ 1 2 次へ

Windows Info 第20回

Windows 8.1 Updateで減ったメモリー使用量を確認する

2014年05月07日 14時00分更新

文● 塩田紳二

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

Windows 8.1 Updateのメモリの利用状況はいかに?

 さて、メモリ状況だが、Windows 8.0と8.1 Updateでは、使い方がかなり違っているようだ。実際に8.1 Updateでは、メモリが1GBしかないマシンでもかなり快適になった。イメージ的には、ようやく実用になったという感じである。本来ならここでWindows 8.1と8.1 Updateを比べてみるべきなのだが、すでにWindows 8.1自体が入手困難であるため、ここではWindows 8.0と8.1 Updateを比較してみた。

 具体的には何が違うのかというと、プログラムが利用するメモリのうち、完全にプログラムが占有していて、一時的に解放できない物理メモリ(プライベート)のサイズや、ある時点で占有している物理メモリのサイズ(ワーキングセット)が減っており、お互いに融通しやすい状態になっている点だ。

 Windowsでは、物理メモリに余裕があると、これをファイルキャッシュなどとして利用することでシステムを高速化するため、タスクマネージャから見るメモリの利用量は、メモリが多くても少なくても、本当に何も使われていない「空き領域」は小さくなっている。このため、タスクマネージャのパフォーマンスタブでメモリの空きメモリだけを見ても、メモリ利用効率の違いははっきりとはわからないのだ。

 しかし、リソースモニターのメモリタブで、同一のプログラムが利用しているメモリの状態を見ると、大きな違いがあった。リソースモニターでは、アプリケーションごとに以下のメモリに関するパラメーターを表示できる。

コミット:アプリケーションが使っている仮想メモリのサイズ
ワーキングセット:アプリケーションが現在利用している物理メモリのサイズ
共有可能:他のアプリに使わせることが可能な物理メモリのサイズ
プライベート:他のアプリには使わせることができない物理メモリのサイズ

 アプリケーションが使っているメモリとは、このうち「ワーキングセット」として表示されている部分になる。このサイズが小さいほどメモリを利用していないことになる。このワーキングセットの中で、一番問題になるのは「プライベート」領域のサイズだ。メモリが不足したとき、この部分は仮想記憶機構によりストレージ側に待避しないと、他のアプリケーションが使うことができない。このためシステム全体で、この部分が大きくなってくると、ハードフォルト(ページフォルトとも。物理メモリが不足したため、現在メモリを占有している部分を外部記憶に待避させたり、逆に待避させていた領域を復帰させること)の頻度が増え、システムの負荷が高くなる。

 これに対して共有可能な領域は、プログラムコードの部分で、他のアプリケーションがメモリを必要としたときにすぐに破棄して転用が可能だ(ただしすべてのプログラムコード領域が共有可能とは限らない)。再度必要になれば、実行ファイルから元の状態に戻せるため、これをストレージに待避する必要がない。なので、この部分はプライベート領域よりは低い負荷で他のアプリケーションが利用可能だ。

 では、Windows 8.0と8.1 Updateでメモリの使い方を見てみることにしよう。下画面の上はWindows 8.0の、下画面の下は8.1 Updateのリソースマネージャの画面だ。プロセスのリストにある「dwm.exe」を見てみると、コミットやワーキングセットのサイズがそもそも違っている。

Windows 8.0のリソースモニターのメモリタブ。リストの2つめにある「dwm.exe」のパラメーターを下の画面と比較

Windows 8.1 Updateでは、同じdwm.exeのコミットやワーキングセットの値が小さくなっている。どちらもシステム起動後、値が落ち着くまで待ってから撮影したもの

 dwm.exeは「Desktop Window Manger」で、デスクトップなどWindowsの画面制御全般を司るモジュールだ。このプログラムは、常にメモリ上にいるものであるため、そのワーキングセットのサイズは、他のアプリが利用できる物理メモリの量に影響する。8.0では100MB以上あったワーキングセットが、8.1 Updateでは、72MBと小さくなっている。

 しかし、Defenderなどで利用するセキュリティエンジンであるMsMpEng.exeを見ると、8.0でも8.1でもほとんど違いはない。このあたりは、8.1 Updateでの改良の対象になっていなかったのだと思われる。

 ただし、これらのメモリに関する値は、ある瞬間をとらえたもの。たとえば、dmm.exeが利用するメモリは、動作しているアプリの数や画面更新頻度などでも変化する。これは起動後、しばらく待って、動きが落ち着いた段階で比較を行なっている。

 メモリ利用の傾向を見るもう1つの方法が、画面右側にあるグラフを見る方法だ。特に3つめの「ハードフォルト/秒」のグラフは、一秒間に発生するハードフォルトの頻度を示し、このグラフが高くなるとハードフォルトが多発していることを示す。このため、このグラフが高い位置に止まり続けることは、物理メモリ不足が続いていることを示す。

 このようなときには、実行しているアプリの数などに関係なく、反応が遅くなったり、動作が止まったようになることが多い。また、外部ストレージのアクセスランプが点滅し続けているはずだ。逆に、このグラフが低い位置にある場合には、ハードフォルトの発生が低く、システムは低負荷状態で、操作に対する反応が悪くなることもない。

 なお、一般にWindowsは起動直後には、さまざまなサービスが動作するため、システムの負荷は高めになる。これはサービスがさまざまな状態を調べたり、処理の前準備などを行なうからだ。たとえば、インデックスサービスやOneDriveでは、ファイルの更新がなされたかどうかの確認をサービスが起動したときに行なうが、以後は、一定間隔で新規データの有無を調べるだけで、システムへの負荷が高くなることはない。

 Windows 8.1 Updateでも、起動直後は比較的負荷が高く、残りメモリも少ない状態だが、数分もすると、落ち着いてきて、利用可能なメモリも増えていく。

Windows 8.1 Updateのメモリ利用の変化。左画面は起動直後(グラフが立ち上がっている)のもので、右画面はしばらく放置したあとのもの。ハードフォールトの頻度が低くなり、「利用可能」メモリのサイズが増えている

 簡単な比較ではあったが、Windows 8.1 Updateにアップデートすることで、メモリが少ない機種であっても、Windows 8.0よりは快適に動作できるようだ。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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