Windows 8の特徴であるMetroスタイルとMetroアプリケーション。このMetroアプリケーションのアドバンテージはどこにあるだろうか。Windows 8の公式ブログであるBuilding Windows 8の最新記事では、Metroアプリケーションが使用するメモリの圧縮と再利用について説明が行われた。また、別の記事では私的なWindows 8マシンを会社に持ち込むことを意味する"BYO"関連の機能についても解説されている。今週もMicrosoftの各公式ブログに掲載された記事を元に、Windows 8に関する動向をお送りする。

USB 3.0をサポートするWindows 8の開発進捗状況

Windows 8の新ユーザーインターフェースを見てみる

変化するWindows 8のファイル管理システム

仮想環境と互換性問題に対応するWindows 8

ネットワークとの親和性を高めるWindows 8ネットワークとの親和性を高めるWindows 8

ランチャースタイルを作り替えたWindows 8

メモリ管理を改良したWindows 8

世界を変える新入力デバイスと視認性を高めるWindows 8のタスクマネージャー

Metroスタイルアプリを支えるWNSとマルチコアサポートを強化するWindows 8

Windows Updateによる再起動を最小限に抑えるWindows 8

Kinect for Windowsの存在とWindows XPをサポートするWindows 8

大容量ディスクと大型セクターをサポートするWindows 8

Windows Storeの登場はWindows 8の成功につながるか

自動アップデートでInternet Explorerの更新をうながすMicrosoft

コンピューターとWebサイトのログオンシステムを強化するWindows 8

デスクトップコンピューター向け機能の強化が目覚ましいWindows 8

「Microsoft Flight」が無償提供、MicrosoftはPCゲーム黄金期を取り戻せるか?

次世代Windows OSで変化する無線ネットワーク環境とファイルシステム

Windows 8と今後のコンピューターに影響を与える「Windows Store」とセンサー機能

OSの使い勝手を左右し、重要な存在となる"エクスプローラー"改良ポイント - Windows 8レポート

アプリによる消費電力を抑えつつもバックグラウンド動作を実現する「Connected Standby」とWindows 8

メトロスタイルUIに対応するWindows 8のアクセシビリティ機能

言語パックの管理方法を変更しSkyDriveとの融合を実現するWindows 8

「Windows 8 Consumer Preview」で見るWindows 8の新機能

今試したいMetroアプリとMicrosoftの描くコンピューターの近未来

タッチ型コンピューターの登場が待ち遠しくなるMetroアプリ版IE10

Windows 8のシステム要件に含まれる「1366×768ピクセル」の理由

マルチタッチ型インターフェースを強化するWindows 8

Windows 8で新設されるIE10の起動オプション

Windows OSのサポート期間を再確認する

メモリを取り戻す「Reclaiming memory」機能

現時点で我々が直接触れることができるWindows 8 Consumer Previewで確認する限り、Metroアプリケーションはメモリーイーター(食い)と評価されている。あくまでもWindows 8 Consumer Previewはベータ版であり、最終的なチューニングを施していないバージョンのため、このような判断を下すことは正しくないものの、過去のWindows OSに触れてきたユーザーなら、過度なメモリ消費に対して敏感にならざるを得ないだろう。公開されたブログ記事によると、その心配は不要になりそうだ。

Windows 8は、サスペンド中のMetroアプリケーションが使用している圧縮可能なメモリを発見すると、そのメモリを再利用し、大半のメモリを異なるMetroアプリケーションで使用するという。つまり、メモリを確保するために不要なMetroアプリケーションを終了させる手間が省かれるということだ。同記事に掲載された動画では、数々のMetroアプリケーションを起動すると当たり前のようにメモリを消費していく。だが、そのほかのMetroアプリケーションを起動することで、既存のMetroアプリケーションに対してサスペンドが実行され、消費メモリは0.6Mバイト程度と大幅に圧縮されている(図01~02)。

図01 いくつかのMetroアプリケーションを起動した状態。それぞれ必要なメモリを確保している(画面は記事の動画より)

図02 異なるMetroアプリケーションをさらに起動した状態。既存のMetroアプリケーションが確保しているメモリ容量が0.6Mバイト程度に減っている。これが圧縮と再利用だ(画面は記事の動画より)

既存のWindows OSでは、アプリケーションが使用できるメモリサイズは限られているものの、アプリケーションが確保したメモリをシステム側が制御することは基本的に難しい。システムがメモリ不足に陥った際は、ローカルディスク上に作成した仮想メモリに消費部分を待避させ、物理メモリの空き容量を確保していた。Windows 8 Consumer Previewで確認する限り同様のロジックは受け継がれているが、Metroアプリケーションの基盤となるWinRTに盛り込まれたメモリ管理機能により、快適なMetroアプリケーションの使用環境が整うだろう。

Windows OSに精通している方ならご存じの話だが、ここでメモリ消費に関する呼称の説明をさせてほしい。タスクマネージャーでは、現在のプロセスで使用されているメモリ容量を「ワーキングセット」と称し、特定のプロセスが専用のメモリとして確保する部分を「プライベートワーキングセット」と称している。図03はWindows 7のタスクマネージャーだが、「acrotray.exe」というプロセスは共有可能なワーキングセットは2,236Kバイト、専用となるプライベートワーキングセットは880Kバイトであることが確認できるだろう(図03)。

図03 Windows 7のタスクマネージャーでは、<プロセス>タブから各プロセスのワーキングセット、プライベートワーキングセットの消費量を確認できる

Windows 8では、このプライベートワーキングセットを利用し、Metroアプリケーションが確保したメモリの圧縮と再利用を実現している。そのため、本ロジックがデスクトップアプリケーション(従来のアプリケーション)に対して適用されることはない。あくまでも「Reclaiming memory」と呼ばれる本機能はMetroアプリケーションに限られている。図04をご覧になるとわかるように、Metroアプリケーションは特定のタイミングでステータスが「Suspended(一時中止中)」に切り替わるが、Microsoft WordやMicrosoft PowerPointなどのデスクトップアプリケーションに変化はそのままだ(図04~05)。

図04 こちらはブログ記事に掲載された画面だが、サスペンド中のMetroアプリケーションの消費メモリが赤い囲みで強調されている(画面は記事より)

図05 特定のMetroアプリケーション(Lyrics)をアクティブにすることでメモリの再割り当てが行われている

もちろん、これだけの理由でデスクトップアプリケーションよりもMetroアプリケーションが優れていると断言するつもりはない。あくまでもアプリケーションの存在意義はユーザーニーズに一致しているか否かだからだ。それでも、コンピューターの搭載メモリ容量によって快適さが左右されるのはOSの常であるだけに、メモリ管理機能には敏感にならざるを得ない。その点Metroアプリケーションを中心としたWindows 8の環境は、メモリ容量をさほど意識せずに使えることが、またひとつはっきりした。なお、ブログ記事では、Reclaiming memoryのロジックも詳しく説明されているので、興味のある方はアクセスしてみるといいだろう。