パフォーマンスPerformance

ユーザーは、高い応答性と自然な使用感、そしてバッテリーが消耗しないことをアプリに期待しています。Users expect their apps to remain responsive, to feel natural, and not to drain their battery. 技術的には、パフォーマンスは機能要件ではありませんが、パフォーマンスを機能として扱うことで、ユーザーの期待に沿うことができます。Technically, performance is a non-functional requirement but treating performance as a feature will help you deliver on your users' expectations. 鍵となる要因は、目標の明確化と測定の実施です。Specifying goals, and measuring, are key factors. パフォーマンスが重要なシナリオを決定し、優れたパフォーマンスとは何を意味するかを定義します。Determine what your performance-critical scenarios are; define what good performance mean. 次に、プロジェクトの初期とライフサイクル全体で十分な回数の測定を行って、目標を達成できることを確認します。Then measure early and often enough throughout the lifecycle of your project to be confident you'll hit your goals.. このセクションでは、パフォーマンスのワークフローの整理、アニメーション エラーやフレーム レートの問題の解決、および起動時間、ページ ナビゲーションの時間、メモリ使用量の調整を行う方法を示します。This section shows you how to organize your performance workflow, fix animation glitches and frame rate problems, and tune your startup time, page navigation time, and memory usage.

これをまだ行っていない場合は、Windows 10 を対象とするようにアプリケーションを移植するだけで、パフォーマンスが大幅に向上します。If you haven't done so already, a step that we've seen result in significant performance improvements is just porting your app to target Windows 10. いくつかの XAML 最適化 (例{x:Bind}) は、Windows 10 アプリでのみ使用できます。Several XAML optimizations (for example, {x:Bind}) are only available in Windows 10 apps. アプリを Windows 10 に移植する」および「ユニバーサル Windows プラットフォームに移動する」を参照してください。See Porting apps to Windows 10 and the //build/ session Moving to the Universal Windows Platform.

トピックTopic 説明Description
パフォーマンスの計画Planning for performance ユーザーは、高い応答性と自然な使用感、そしてバッテリーが消耗しないことをアプリに期待しています。Users expect their apps to remain responsive, to feel natural, and not to drain their battery. 技術的には、パフォーマンスは機能要件ではありませんが、パフォーマンスを機能として扱うことで、ユーザーの期待に沿うことができます。Technically, performance is a non-functional requirement but treating performance as a feature will help you deliver on your users' expectations. 鍵となる要因は、目標の明確化と測定の実施です。Specifying goals, and measuring, are key factors. パフォーマンスが重要なシナリオを決定し、優れたパフォーマンスとは何を意味するかを定義します。Determine what your performance-critical scenarios are; define what good performance mean. 次に、プロジェクトの初期とライフサイクル全体で十分な回数の測定を行って、目標を達成できることを確認します。Then measure early and often enough throughout the lifecycle of your project to be confident you'll hit your goals.
バックグラウンド アクティビティの最適化Optimize background activity システムと連携して、バッテリー効率の高い方法でバックグラウンド タスクを使用する UWP アプリを作成します。Create UWP apps that work with the system to use background tasks in a battery-efficient way.
ListView と GridView の UI の最適化ListView and GridView UI optimization GridView のパフォーマンスと起動時間を、UI の仮想化や要素の削減、項目の段階的な更新を通して向上させます。Improve GridView performance and startup time through UI virtualization, element reduction, and progressive updating of items.
ListView と GridView のデータ仮想化ListView and GridView data virtualization データ仮想化によって GridView のパフォーマンスと起動時間を向上させます。Improve GridView performance and startup time through data virtualization.
ガベージコレクションのパフォーマンスを向上させるImprove garbage collection performance C# と Visual Basic で記述されたユニバーサル Windows プラットフォーム (UWP) アプリは、.NET ガベージ コレクターによって、自動的にメモリ管理が行われます。Universal Windows Platform (UWP) apps written in C# and Visual Basic get automatic memory management from the .NET garbage collector. このセクションでは、UWP アプリでの .NET ガーベジ コレクターの動作とパフォーマンスに関するベスト プラクティスについて説明します。This section summarizes the behavior and performance best practices for the .NET garbage collector in UWP apps.
UI スレッドの応答性の確保Keep the UI thread responsive ユーザーは、コンピューターの種類に関係なく、アプリが計算を実行しているときも引き続き応答性を保つことを期待します。Users expect an app to remain responsive while it does computation, regardless of the type of machine. これは、アプリケーションの種類によって異なる意味を持ちます。This means different things for different apps. 一部のアプリケーションにとっては、これは、よりリアルな物理的効果の再現、ディスクや Web からのデータの読み込み速度の向上、複雑なシーンのすばやい表示とページ間の移動、スナップでの方向検出、高速のデータ処理などを意味します。For some, this translates to providing more realistic physics, loading data from disk or the web faster, quickly presenting complex scenes and navigating between pages, finding directions in a snap, or rapidly processing data. 計算の種類に関係なく、ユーザーはアプリが入力に対して反応することを求め、計算中にアプリが応答停止しているように見える状況は望ましくありません。Regardless of the type of computation, users want their app to act on their input and eliminate instances where it appears unresponsive while it "thinks".
XAML マークアップの最適化Optimize your XAML markup UI が複雑な場合は、XAML マークアップを解析し、メモリ内にオブジェクトを構築するのに時間がかかります。Parsing XAML markup to construct objects in memory is time-consuming for a complex UI. 以下に、アプリでの XAML マークアップの解析および読み込み時間や、メモリ効率の向上に役立つヒントを紹介します。Here are some things you can do to improve XAML markup parse and load time and memory efficiency for your app.
XAML レイアウトの最適化Optimize your XAML layout レイアウトは、CPU 使用率とメモリ オーバーヘッドの両方で、XAML アプリの負荷の高い部分です。Layout can be an expensive part of a XAML app—both in CPU usage and memory overhead. ここでは、XAML アプリのレイアウトのパフォーマンスを向上させるための簡単な手順を示します。Here are some simple steps you can take to improve the layout performance of your XAML app.
MVVM と言語のパフォーマンスに関するヒントMVVM and language performance tips このトピックでは、ソフトウェアの設計パターンとプログラミング言語の選択に関連するいくつかのパフォーマンスの考慮事項について説明します。This topic discusses some performance considerations related to your choice of software design patterns, and programming language.
アプリの起動時のパフォーマンスに関するベストプラクティスBest practices for your app's startup performance 起動とアクティブ化を処理する方法を向上させることによって、最適な起動時間の UWP アプリを作成します。Create UWP apps with optimal startup times by improving the way you handle launch and activation.
アニメーション、メディア、およびイメージの最適化Optimize animations, media, and images スムーズなアニメーション、高いフレーム レート、およびパフォーマンスの高いメディア キャプチャと再生を備えたユニバーサル Windows プラットフォーム (UWP) アプリを作成します。Create Universal Windows Platform (UWP) apps with smooth animations, high frame rate, and high-performance media capture and playback.
中断/再開の最適化Optimize suspend/resume プロセス継続時間システムの使用を合理化することで、中断または終了の後効率的に再開される UWP アプリを作成します。Create UWP apps that streamline their use of the process lifetime system to resume efficiently after suspension or termination.
ファイルアクセスの最適化Optimize file access ファイル システムに効率的にアクセスすることで、ディスクの待ち時間とメモリ/CPU サイクルによるパフォーマンスの問題を回避する UWP アプリを作成します。Create UWP apps that access the file system efficiently, avoiding performance issues due to disk latency and memory/CPU cycles.
コンポーネントの Windows ランタイムと相互運用の最適化Windows Runtime components and optimizing interop 相互運用性のパフォーマンスの問題を回避しながら、ネイティブ型とマネージ型の間で UWP コンポーネントと相互運用機能を使う UWP アプリを作成します。Create UWP apps that use UWP Components and interop between native and managed types while avoiding interop performance issues.
プロファイリングとパフォーマンスのためのツールTools for profiling and performance Microsoft には、UWP アプリのパフォーマンスを改善する際に役立つツールがいくつか用意されています。Microsoft provides several tools to help you improve the performance of your UWP app.