Skip to content

Commit

Permalink
[Grammar] Update 2-0 Measuring Performance.md
Browse files Browse the repository at this point in the history
  • Loading branch information
dendibakh authored Sep 4, 2024
1 parent 6915359 commit e0a6bcb
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions chapters/2-Measuring-Performance/2-0 Measuring Performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@

# Measuring Performance {#sec:secMeasPerf}

The first step to understand the performance of an application is to measure it. Anyone ever concerned with performance evaluations likely knows how hard it is sometimes to conduct fair performance measurements and draw accurate conclusions from them. Performance measurements can be very unexpected and counterintuitive. Changing a seemingly unrelated part of the source code can surprise us with a significant impact on the performance of the program. This phenomenon is called *measurement bias*.
The first step to understanding the performance of an application is to measure it. Anyone ever concerned with performance evaluations likely knows how hard it is sometimes to conduct fair performance measurements and draw accurate conclusions from them. Performance measurements can be very unexpected and counterintuitive. Changing a seemingly unrelated part of the source code can surprise us with a significant impact on the performance of the program. This phenomenon is called *measurement bias*.

Performance problems are often harder to reproduce and root cause than most functional issues. Every run of a program is usually functionally the same but somewhat different from a performance standpoint. For example, when unpacking a zip file, we get the same result over and over again, which means this operation is reproducible. However, it's impossible to reproduce the same CPU cycle-by-cycle performance profile of this operation.

Conducting fair performance experiments is an essential step towards getting accurate and meaningful results. You need to ensure you're looking at the right problem, and are not debugging some unrelated issue. Designing performance tests and configuring the environment are both important components in the process of evaluating performance.
Conducting fair performance experiments is an essential step towards getting accurate and meaningful results. You need to ensure you're looking at the right problem and are not debugging some unrelated issue. Designing performance tests and configuring the environment are both important components in the process of evaluating performance.

Because of the measurement bias, performance evaluations often involve statistical methods, which deserves a whole book just for itself. There are many corner cases and a huge amount of research done in this field. We will not disciss statistical methods for evaluating performance measurements. Instead, we will discuss high-level ideas and give basic directions to follow. We encourage you to research deeper on your own.
Because of the measurement bias, performance evaluations often involve statistical methods, which deserves a whole book just for itself. There are many corner cases and a huge amount of research done in this field. We will not discuss statistical methods for evaluating performance measurements. Instead, we will discuss high-level ideas and give basic directions to follow. We encourage you to research deeper on your own.

In this chapter, we:

Expand Down

0 comments on commit e0a6bcb

Please sign in to comment.