How Are Performance Issues Caused and Resolved?—An Empirical Study from a Design Perspective
Authors/Creators
- 1. Stevens Institute of Technology
- 2. Fudan University
- 3. Nanyang Technological University
Description
Empirical experience regarding how real-life performance issues
are caused and resolved can provide valuable insights for practitioners to effectively and efciently prevent, detect, and fx performance
issues. Prior work shows that most performance issues have their
roots in poor architectural decisions. This paper contributes a large
scale empirical study of 192 real-life performance issues, with an
emphasis on software design. First, this paper contributes a holistic
view of eight common root causes and typical resolutions that recur
in different projects, and surveyed existing literature, in particular,
tools, that can detect and fx each type of performance issue. Second,
this study is frst-of-its-kind to investigate performance issues from
a design perspective. In the 192 issues, 33% required design-level
optimization, i.e. simultaneously revising a group of related source
fles for resolving the issues. We reveal four design-level optimization patterns, which have shown different prevalence in resolving
different root causes. Finally, this study investigated the Return on
Investment for addressing performance issues, to help practitioners
choose between localized or design-level optimization resolutions,
and to prioritize issues due to different root causes.