Skip to content

Commit 4b04acf

Browse files
Merge pull request #6335 from MicrosoftDocs/niels9001/performance
[Develop/Performance]
2 parents 41a4e64 + 9021a25 commit 4b04acf

4 files changed

Lines changed: 40 additions & 90 deletions

File tree

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"redirections": [
3+
{
4+
"source_path": "hub/apps/performance/introduction.md",
5+
"redirect_url": "/windows/apps/performance/",
6+
"redirect_document_id": true
7+
},
38
{
49
"source_path": "hub/android/emulator.md",
510
"redirect_url": "/windows/dev-environment/",

hub/apps/develop/toc.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -541,8 +541,6 @@ items:
541541
items:
542542
- name: Overview
543543
href: ../performance/index.md
544-
- name: Introduction to performance
545-
href: ../performance/introduction.md
546544
- name: Choosing performance tools
547545
href: ../performance/choose-between-tools.md
548546
- name: Improve disk and memory use

hub/apps/performance/index.md

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,43 @@ This page provides an overview of the technologies and development tools for mea
1616

1717
## What is application performance and why is it important?
1818

19-
Performance in the context of an application usually revolves around _cost_. How long is it going to take to complete a particular task? How much of the system's resources will be used?
19+
Performance is the measure of how effectively your application uses the system's resources to do what you've designed it to do. It covers different aspects of how your program interacts with the underlying device, including:
2020

21-
The answers to these questions play a fundamental role in the quality of a user's experience with an application (you can likely recall times where as a user, you have felt frustrated at an application for its poor performance!). As a developer, by keeping performance in mind, you will ensure that users of your applications don't experience that same frustration.
21+
* CPU usage
22+
* Memory consumption
23+
* Power consumption
24+
* Network and storage utilization
25+
* Animation performance
2226

23-
To learn more about the importance of performance and suggestions on how to get started, see this [introduction to the world of performance](introduction.md).
27+
All of these properties have an element of cost associated with them: for example, how much CPU does my application use? How much of the user's bandwidth will it consume? How fast does this particular page of my application load?
28+
29+
Users expect performance as a fundamental property of the software they use. They want their applications to be responsive and make efficient use of their system's resources. Applications that exhibit poor performance cause frustration, which can lead to reduced user engagement. To provide your customers with the best possible experience, it is therefore crucial to make performance a regular part of your development workflow.
30+
31+
## When should you measure application performance?
32+
33+
Application performance can span many stages of the development process. It has implications on everything ranging from your choice of data structure to the technology that you choose for building your application. Keep performance in mind as you are developing your application, and plan to do regular performance testing as part of updating and maintaining your application.
34+
35+
## How to approach performance measurement
36+
37+
Here are some suggestions for how to approach testing your application for performance.
38+
39+
* **Leverage your knowledge of your application.** Understanding the most common scenarios for your users will enable you to spend your time wisely on optimizing the right things. If you have data available on how users interact with your application, this would be a great time to look at it.
40+
* Where are your users spending most of their time?
41+
* What are the most important things that a customer will do with your software?
42+
* What are your application's hardware requirements?
43+
* **Set performance goals for your most important user scenarios.**
44+
* **Be precise about what you are trying to optimize.** Is it CPU? Battery? Network throughput?
45+
* **Select the tools you will use to do your measurements.**
46+
* **Apply a scientific mindset when testing.** Create benchmarks in a controlled environment. Then, make your change, and re-measure to see how your changes have affected your application's behavior.
47+
* **Add regression testing into your test environment.** This will ensure that your performance metrics don't regress over time.
48+
49+
### Intertwining metrics
50+
51+
While you will typically focus on one area of performance during your analysis, be aware that areas are often intertwined. An improvement in one can cascade into an improvement in the other areas.
52+
53+
For example, fixing power consumption is frequently a synchronization problem. Reducing memory usage can result in reducing the time spent using the CPU. There can also be situations where additional resources spent in one area yield a more impactful improvement in another area—for instance, increasing memory consumption can decrease network or storage utilization through caching.
54+
55+
The decision to make a change depends on what is most important for your customers.
2456

2557
## What tools can I use to measure application performance?
2658

hub/apps/performance/introduction.md

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)