Performance measurement is one of the most important parts of software development. In academic research a thorough performance evaluation is considered essential for many publications to prove the value of a new idea. In industry, performance evaluation is necessary to maintain a high level of performance across the lifetime of a product. For example, cloud services promise to maintain particular performance levels; service providers must thus be able to detect when performance drops below acceptable levels and quickly identify and fix the problem.
A good performance evaluation provides a deep understanding of a system's behavior, quantifying not only the overall behavior but also its internal mechanisms and policies. It explains why a system behaves the way it does, what limits that behavior, and what problems must be addressed in order to improve the system. Done well, performance evaluation exposes interesting system properties that were not obvious previously. It not only improves the quality of the system being measured but the developer's intuition, resulting in better systems in the future.
This is an excellent article. Measurement is one of the areas where it's simple to see the overlap between software produced for academic papers and live/production systems that span hundreds or even thousands of servers and the importance of computer science and scientific thinking.
In the real world, without good measurements, you may be wasting thousands of dollars on hardware that you don't need, and wasting developer time on solving things that aren't actually problems.
Shallow metrics are no match for proper measurements; great article!
Displaying 1 comment