TY - GEN
T1 - How are performance issues caused and resolved?-an empirical study from a design perspective
AU - Zhao, Yutong
AU - Xiao, Lu
AU - Wang, Xiao
AU - Sun, Lei
AU - Chen, Bihuan
AU - Liu, Yang
AU - Bondi, Andre B.
N1 - Publisher Copyright:
© 2020 ACM.
PY - 2020/4/20
Y1 - 2020/4/20
N2 - Empirical experience regarding how real-life performance issues are caused and resolved can provide valuable insights for practitioners to effectively and efficiently prevent, detect, and fix 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 fix each type of performance issue. Second, this study is first-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 files 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.
AB - Empirical experience regarding how real-life performance issues are caused and resolved can provide valuable insights for practitioners to effectively and efficiently prevent, detect, and fix 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 fix each type of performance issue. Second, this study is first-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 files 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.
KW - Design patterns
KW - Software design structure
KW - Software performance
UR - http://www.scopus.com/inward/record.url?scp=85085926600&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85085926600&partnerID=8YFLogxK
U2 - 10.1145/3358960.3379130
DO - 10.1145/3358960.3379130
M3 - Conference contribution
AN - SCOPUS:85085926600
T3 - ICPE 2020 - Proceedings of the ACM/SPEC International Conference on Performance Engineering
SP - 181
EP - 192
BT - ICPE 2020 - Proceedings of the ACM/SPEC International Conference on Performance Engineering
T2 - 11th ACM/SPEC International Conference on Performance Engineering, ICPE 2020
Y2 - 20 April 2020 through 24 April 2020
ER -