What This Document Is
This document is a focused collection of instructional materials from CS 736: Software Performance Engineering at West Virginia University, specifically addressing the critical initial phase of performance engineering: Data Collection. It outlines the foundational information needed to proactively identify and address potential performance bottlenecks *before* significant development effort is expended. The material centers around understanding what data is essential for effective performance analysis and how to begin gathering it within the software development lifecycle.
Why This Document Matters
This resource is invaluable for students and professionals involved in software design, development, and testing who want to build high-performing applications. It’s particularly useful during the early stages of a project – requirements gathering and initial design – when making informed decisions about performance can save significant time and resources later on. Anyone seeking to understand how to establish measurable performance goals and define realistic expectations for a system’s behavior will find this material beneficial. It’s a key component in shifting from reactive performance *fixing* to proactive performance *engineering*.
Common Limitations or Challenges
This document focuses on the *what* and *why* of data collection, but it does not provide detailed, step-by-step instructions on *how* to implement specific measurement tools or conduct detailed performance modeling. It also doesn’t cover advanced topics like statistical analysis of performance data or in-depth instrumentation techniques. It serves as a foundational understanding, not a complete, hands-on guide. Access to the full material is required for a comprehensive understanding of practical application.
What This Document Provides
* An overview of the types of data crucial for performance engineering.
* Discussion of the importance of defining key performance scenarios.
* Guidance on establishing quantifiable performance objectives.
* Considerations for understanding the impact of the execution environment on performance.
* Insight into relating software resource requirements to underlying hardware capabilities.
* Framework for estimating workload intensity for different operational situations.