Windows Phone 8 の Windows Phone アプリケーションの分析

Windows Phone アプリケーション分析ツールは、Windows Phone アプリの品質とパフォーマンスを検証し改善するための、監視およびプロファイリング ツールです。このツールで、後から行うだけではなく、開発サイクルの一部で品質保証が簡単に行えます。このトピックでは、アプリケーション分析ツールの概要と、Windows Phone アプリの品質やパフォーマンスを改善できる方法について説明します。

アプリケーション分析ツールは、次のオプションを備えています。

  • アプリの監視アプリの監視オプションで、起動時間や処理速度などの、ユーザーの操作性の向上のため役立つ、最も重要なアプリの動作を評価できます。

    アプリの監視を使用するには、Windows Phone 8 デバイスまたはエミュレーターでアプリを実行する必要があります。ただし、Windows Phone 8 または Windows Phone OS 7.1 を対象とするアプリを監視することができます。アプリの監視は、管理されているアプリでのみサポートされており、Direct3D アプリは監視できません。

    監視の実行方法と結果の確認方法については、「Windows Phone 8 のアプリ監視」を参照してください。

  • プロファイルプロファイル オプションで、アプリの実行関連またはメモリ使用率の観点のいずれかから評価できます。

    ただし、Windows Phone 8 または Windows Phone OS 7.1 を対象とするアプリのプロファイリングを行うことができます。

    プロファイルの実行方法と結果の確認方法については、「Windows Phone 8 のアプリのプロファイリング」を参照してください。Direct3D アプリのプロファイリング方法については、「Windows Phone 8 用 Direct3D アプリのプロファイリング」を参照してください。

このトピックは、次のセクションで構成されています。

ユーザーが楽しめて正常に動作する Windows Phone アプリの作成を目的とするならば、アプリの品質とパフォーマンスの改善に時間をかける必要があります。アプリに関するアイデアがすばらしいものであったとしても、アプリが遅かったり、反応がなかったり、定期的にクラッシュしたりすれば、ユーザーは使用をやめてマイナスの評価をつけるでしょう。

Windows Phone アプリを Windows Phone ストア で公開するには、優れたユーザー エクスペリエンスを実現することに加え、一定のパフォーマンス要件を満たしている必要があります。たとえば、次の項目に関する認可要件があります。

  • アプリ起動時間

  • アプリの処理速度

  • アプリにより使用される最大メモリ

Windows Phone ストア テスト キット を使用して、これらの問題の一部を特定できます。ただし、アプリケーション分析ツールはこれらの問題の原因を、アプリで特定、把握、問題解決するために役立ちます。

このセクションで説明する要件とツールの詳細については、次のトピックを参照してください。

アプリケーション分析ツールで、アプリの機能を通常のユーザーが使うように実行しながら、アプリの品質やパフォーマンスに関する最も重要な測定値を取得できます。

アプリケーション分析ツールは、Windows Phone SDK の一部としてインストールされ、Visual Studio に完全に統合されます。アプリケーション分析ツールを実行するたびに、プロジェクト フォルダー内にそのセッションのパフォーマンス情報を含むファイルが作成されます。選択すると、そのファイルの内容が Visual Studio に表示され、詳細情報を含む結果が一連の表とグラフで表示されます。

アプリ分析は、アプリをエミュレーターまたは電話で実行している間に実行できます。

次の図は、Windows Phone パフォーマンス分析の起動時に使用できるオプションです。

Application analysis options

通常は、[セッションの終了] をクリックして分析セッションを停止します。ただし、分析セッションは、次のいずれかの条件を満たす場合にも中断されます。

  • 別のアプリに切り替え、アプリが非アクティブになったとき、分析は一時停止します。

  • アプリが廃棄された場合、分析が停止します。

  • 何らかの方法でアプリが終了した場合、分析が停止します。

アプリケーション分析ツールでは、アプリの動作およびパフォーマンスが複数の観点から分析され、結果がグラフ形式で表示されます。グラフ内は認識しやすいよう、各領域が色分けされています。例のグラフを次に示します。

The Windows Phone Profiler's "Graphs" area

アプリの監視とアプリのプロファイリングの後、グラフに次の情報の行が表示されます。

外部イベント

UI での入力やネットワークの変更のシミュレートなどのユーザー イベントです。

フレーム レート

タイムラインのその時点でアプリが行った画面の再描画回数が、1 秒あたりフレーム数で表示されます。この情報は、アプリが何らかの方法で表示を更新したタイムラインにおける期間に対してのみ表示できます。Windows Phone アプリは、1 秒あたり平均 30 ~ 60 フレームでなければなりません。

フレーム レートは、XNA Framework アプリケーションについてはキャプチャまたは表示されません。

CPU 使用率

アプリ実行中の電話の CPU 使用率を百分率で表示します。CPU 使用率は、グラフにスレッド型で示されます。スレッド型の一覧を次に示します。

[スレッド]

グラフでの色

メモ

ユーザー インターフェイス (UI) のスレッド

画面の更新とタッチ入力を示します。UI スレッドは、CPU 使用率の 50% 未満を維持するよう努めなければなりません。

アプリケーション スレッド

UI スレッドにないアプリの活動を示します。これは複合スレッドの場合とバックグラウンド スレッドの場合があります。

システム スレッド

グレー

アプリ向けでないアクティビティを示します。システム スレッドの割合が大きい場合は、システムが他のバックグラウンド タスクでビジーになり、アプリのパフォーマンスに影響を与えていることを示します。

アイドル スレッド

使用可能な CPU の割合を示します。アイドル スレッドの割合が高くなるほど、アプリの反応が速くなると考えられます。

アプリケーションの応答速度

入力に対するアプリの UI の応答速度を示します。

ネットワーク データ転送 (MBps または KBps)

アプリ監視では、ネットワーク データ転送をキロバイト/秒 (KBps) で表示します。アプリ プロファイルでは、同じ値をメガバイト/秒 (MBps) で表示します。

バッテリー消費量 (mAh)

アプリ実行中の、バッテリ消費の概算の比率です。

メモリ使用量 (MB)

アプリが使用している電話のメモリ量をメガバイト単位で測定して表示します。

次の情報の行は、アプリのプロファイリング後のみグラフに表示されます。

ストーリーボード

タイムライン上に、ストーリーボード イベントの発生を示す S フラグが表示されます。一般に、ストーリーボード イベントは、アニメーションの開始を示します。フラグは 2 種類あります。

  • 赤いフラグは、CPU がバインドされているストーリーボードを示します。

  • 紫のフラグは、CPU がバインドされていないストーリーボードを示します。

イメージ読み込み

タイムライン上に、イメージ資産が電話のメモリにロードされた時点を示す I フラグが表示されます。

GC イベント

タイムライン上に、ガベージ コレクションが発生した時点を示す G フラグが表示されます。これにより、直近で解放されたメモリ容量をランタイムが再利用した時点についての詳細がわかります。

次の一覧は、アプリケーション分析ツールを使用する際に知っておいた方が良いパフォーマンスに関する主な用語です。ツールの列ヘッダー上にマウス ポインターを置くと、各列のデータを説明するヒントが表示されます。

アプリケーションの応答速度

ユーザー入力および画面更新に対する、アプリの UI スレッドのすばやさです。

配置回数

指定したビジュアル要素の選択した期間内での配置に必要な反復処理回数です。

配置時間

指定したビジュアル要素の配置にかかる時間 (ミリ秒) です。

CPU 使用率

タイムラインのその時点で使用中の、使用可能な電話 CPU 容量の割合です。この情報は、グラフ表示ではスレッドに分割され、詳細なパフォーマンス分析のセクションではメソッド名ごとに分けられます。

ダーティ

指定されたビジュアル要素が古かった (レンダリングの更新を待っている) 選択した期間内の時間量です。

[サンプル数 (関数のみ)]

指定された (ターゲット) メソッドの命令の直接実行中に収集されたサンプルの合計数 (または割合) です。排他サンプルには、対象のメソッドから呼び出される関数の実行中に収集されるサンプルは含まれません。

塗りつぶし速度

フレームを構成する合計ピクセル数と、画面で使用可能な合計ピクセル数との比率です。

フレーム レート

タイムラインのその時点で描画された画面更新回数です。1 秒あたりのフレーム数で表されます。

[サンプル数 (子を含む)]

指定された (ターゲット) メソッドの実行中に収集されたサンプルの合計数 (または割合) です。これには、メソッド コードの直接実行中に収集されるサンプルと、対象のメソッドから呼び出される子メソッドの実行中に収集されるサンプルが含まれます。

測定回数

指定したビジュアル要素の選択した期間内でのサイズ変更に必要な反復処理回数です。

排他測定時間

指定したビジュアル要素のサイズ変更と配置にかかる時間 (ミリ秒) です。この測定値には、ビジュアル要素階層 (ツリー) で指定した要素の子である要素のサイズ変更にかかった時間は含まれません。

包括測定時間

指定したビジュアル要素のサイズ変更にかかる時間 (ミリ秒) です。この測定値には、ビジュアル要素階層 (ツリー) で指定した要素の子である要素のサイズ変更にかかった時間が含まれます。

メモリ使用状況

タイムラインのその時点でアプリによって使用されている電話のメモリのプライベート作業セットです。

パフォーマンスの警告

発生する可能性のあるパフォーマンスの問題を通知します。警告は、詳細なパフォーマンス分析のセクションに表示されます。

サンプリング

アプリがサンプルのタスクおよびコード パスの実行にかかった時間を測定することにより、アプリにおけるほとんどのユーザー モードの動作を実行する機能を示す統計的プロファイル方法です。

テクスチャ数

フレームの電話メモリに読み込まれるテクスチャ数です。

テクスチャ更新回数

選択した期間において更新されたテクスチャ数です。

排他合計描画時間

指定されたビジュアル要素の描画に必要な時間の長さ (ミリ秒単位)。この測定値には、ビジュアル要素階層 (ツリー) で指定した要素の子である要素のレンダリングにかかった時間は含まれません。

包括合計描画時間

指定されたビジュアル要素の描画に必要な時間の長さ (ミリ秒単位)。この測定値には、ビジュアル要素階層 (ツリー) で指定した要素の子である要素のレンダリングにかかった時間が含まれます。

表示:
© 2015 Microsoft