Windows アプリケーションのパフォーマンスの概要

測定ロゴ

パフォーマンスは、コードの測定および改良に焦点を当てたソフトウェア開発の 1 つの側面です。 この記事を読むと、パフォーマンスには何が伴うのか、お客様とお客様の顧客にとってそれはなぜ重要であるのか、アプリケーションのパフォーマンスの測定はどのように開始すればよいかをよく理解することができます。

アプリケーションのパフォーマンスとは

パフォーマンスとは、お客様が設計した機能を実現するために、アプリケーションでシステムのリソースがどの程度効果的に使用されているかを示す尺度です。 プログラムが基になるデバイスとどのようにやりとりするかについて、さまざまな側面から説明します。 それには次のようなものがあります。

  • CPU 使用率
  • メモリ使用量
  • 消費電力
  • ネットワークとストレージの使用率
  • アニメーションのパフォーマンス

その他

このような各種のプロパティのすべてにコストの要素が関連付けられています。たとえば、アプリケーションでの CPU の使用量はどれほどか、 ユーザーの帯域幅はどれほど使用されるか、 アプリケーションのこの特定のページはどれほどの速度で読み込まれるか、などが挙げられます。 したがって、測定がパフォーマンスの中心となります。

なぜ重要なのでしょうか?

ユーザーは、自分が使用するソフトウェアの基本的なプロパティとしてパフォーマンスを期待します。 応答性が高く、システムのリソースが効率的に使用されることを、彼らはアプリケーションに望んでいます。 パフォーマンスの低下が見られるアプリケーションは、フラストレーションの原因となり、ユーザー エンゲージメントの低下につながる可能性があります。 したがって、最適なエクスペリエンスを顧客に提供するには、パフォーマンスを開発ワークフローの必須の部分として位置づけることが重要です。

アプリケーションのパフォーマンスはどのタイミングで測定すればよいでしょうか?

パフォーマンス グラフ

アプリケーションのパフォーマンスは、開発プロセスのさまざまな段階にわたって存在すると考えられます。 選択したデータ構造からアプリケーションを構築するために選択したテクノロジまで、あらゆるものに影響を及ぼします。

アプリケーションの開発時にはパフォーマンスを念頭に置き、アプリケーションの更新と保守の一環として定期的なパフォーマンス テストを実施することを計画してください。

アプリケーションのパフォーマンスはどのように測定しますか?

ここでは、アプリケーションのパフォーマンス テストに取り組む方法について、いくつかを提案します。

  • 自分のアプリケーションに関する知識を活用する。 お客様のユーザーにとっての最も一般的なシナリオを理解することで、的を得た事柄を最適化するのに時間を賢く使うことができます。 シナリオが不明確な場合、測定値の解釈が難しくなる可能性がありますが、この手順はスキップしないでください。 ユーザーがアプリケーションとどのようなやりとりをするかに関するデータが用意されている場合は、是非それを見てみましょう。
    • ユーザーはほとんどの時間をどこで過ごしていますか?
    • お客様の顧客がソフトウェア使用して行う最も重要なことは何ですか?
    • アプリケーションのハードウェア要件はどのようなものですか?
  • 最も重要なユーザー シナリオに対してパフォーマンス目標を設定する。
  • 最適化しようとしている内容について明確にする。 それは CPU ですか? バッテリーですか? ネットワーク スループットですか?
  • 測定に使用するツールを選択する。
  • テストの際に科学的な考え方を適用する。 制御された環境でベンチマークを作成します。 次に、変更を行ってから、その変更によってアプリケーションの動作がどのような影響を受けたかを確認するために再測定します。
  • テスト環境に回帰テストを追加する。 これにより、パフォーマンス メトリックが時間の経過とともに低下することは確実になくなります。 最新のハードウェアは複雑であり、パフォーマンスの向上の影響を測定するのは困難な場合があります。 これらの方法でアプリケーションのパフォーマンスを調査、測定、およびテストすることで、行った作業の影響を確実に把握することができます。

メトリックを結び付ける

通常、分析中はパフォーマンスの 1 つの領域に注目しますが、多くの場合、複数の領域が絡み合っていることに注意してください。 1 つの領域での改良点は、他の領域での改良点に次々と影響を及ぼす場合があります。

たとえば、電力消費を修正することは、多くの場合、同期の問題です。 メモリ使用率を減らすと、CPU の使用時間が短縮される可能性があります。

また、1 つの領域で使用されるリソースが増えると、それが別の領域での改良により大きな影響を及ぼすという状況が発生する場合もあります。

たとえば、メモリ消費量を増やすと、キャッシュを介したネットワークまたはストレージの使用率が下がる可能性があります。

変更を行うべきかどうかは、お客様の顧客にとって最も重要なものは何であるかにかかっています。 また、パフォーマンス作業の課題 (と楽しい!) の一部でもあります。

次のステップ

このバックグラウンドが整ったら、次のようなアクションをとることができます。

  • アプリケーションの最も一般的なシナリオを特定する。 これらは、何の測定を試みるかを決める上での基礎となります。
  • テストの戦略を理解する。 使用するテスト環境および測定ツールの選択肢はどのようなものですか?

Windows アプリのパフォーマンスの概要」を参照して、パフォーマンスに関する作業で使用できるツールとガイダンスの詳細について確認してください。