TY - GEN
T1 - Butterfly space
T2 - 17th IEEE International Conference on Software Architecture, ICSA 2020
AU - Zhao, Yutong
AU - Xiao, Lu
AU - Wang, Xiao
AU - Chen, Zhifei
AU - Chen, Bihuan
AU - Liu, Yang
N1 - Publisher Copyright:
© 2020 IEEE.
PY - 2020/3
Y1 - 2020/3
N2 - Performance issues widely exist in modern software systems. Existing performance optimization approaches, such as dynamic profiling, usually fail to consider the impacts of architectural connections among methods on performance issues. This paper contributes an architectural approach, Butterfly Space modeling, to investigate performance issues. Each Butterfly Space is composed of 1) a seed method; 2) methods in the 'upper wing' that call the seed directly or transitively; and 3) methods in the 'lower wing' that are called by the seed, directly or transitively. The rationale is that the performance of the seed method impacts and is impacted by all the other methods in the space because of the call relationship. As such, developers can more efficiently investigate groups of connected performance improvement opportunities in Butterfly Spaces. We studied three real-world open source Java projects to evaluate such potential. Our findings are three-fold: 1) If the seed method of a Butterfly Space contains performance problems, up to 60% of the methods in the space also contain performance problems; 2) Butterfly Spaces can potentially help to non-trivially increase the precision/recall and reduce the costs in identifying performance improvement opportunities, compared to dynamic profiling; and 3) Visualizing dynamic profiling metrics with Butterfly Spaces simultaneously help to reveal two typical patterns, namely Expensive Callee and Inefficient Caller, that are responsible for performance problems and provide insights on where to improve next. We believe that Butterfly Space modeling has great potential for investigating performance issues.
AB - Performance issues widely exist in modern software systems. Existing performance optimization approaches, such as dynamic profiling, usually fail to consider the impacts of architectural connections among methods on performance issues. This paper contributes an architectural approach, Butterfly Space modeling, to investigate performance issues. Each Butterfly Space is composed of 1) a seed method; 2) methods in the 'upper wing' that call the seed directly or transitively; and 3) methods in the 'lower wing' that are called by the seed, directly or transitively. The rationale is that the performance of the seed method impacts and is impacted by all the other methods in the space because of the call relationship. As such, developers can more efficiently investigate groups of connected performance improvement opportunities in Butterfly Spaces. We studied three real-world open source Java projects to evaluate such potential. Our findings are three-fold: 1) If the seed method of a Butterfly Space contains performance problems, up to 60% of the methods in the space also contain performance problems; 2) Butterfly Spaces can potentially help to non-trivially increase the precision/recall and reduce the costs in identifying performance improvement opportunities, compared to dynamic profiling; and 3) Visualizing dynamic profiling metrics with Butterfly Spaces simultaneously help to reveal two typical patterns, namely Expensive Callee and Inefficient Caller, that are responsible for performance problems and provide insights on where to improve next. We believe that Butterfly Space modeling has great potential for investigating performance issues.
KW - Performance optimization
KW - Software architecture
KW - Software performance
UR - http://www.scopus.com/inward/record.url?scp=85085920726&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85085920726&partnerID=8YFLogxK
U2 - 10.1109/ICSA47634.2020.00027
DO - 10.1109/ICSA47634.2020.00027
M3 - Conference contribution
AN - SCOPUS:85085920726
T3 - Proceedings - IEEE 17th International Conference on Software Architecture, ICSA 2020
SP - 202
EP - 213
BT - Proceedings - IEEE 17th International Conference on Software Architecture, ICSA 2020
Y2 - 16 March 2020 through 20 March 2020
ER -