Butterfly Space: An Architectural Approach for Investigating Performance Issues

Butterfly Space: An Architectural Approach for Investigating Performance Issues
复制标题

DOI:
10.1109/icsa47634.2020.00027
复制
发表时间:
2020-03
期刊:
2020 IEEE International Conference on Software Architecture (ICSA)
影响因子:
--
通讯作者:
Yutong Zhao;Lu Xiao;Xiao Wang;Zhifei Chen;Bihuan Chen;Yang Liu
Yutong Zhao;Lu Xiao;Xiao Wang;Zhifei Chen;Bihuan Chen;Yang Liu
中科院分区:
其他
文献类型:
--
作者:
Yutong Zhao;Lu Xiao;Xiao Wang;Zhifei Chen;Bihuan Chen;Yang Liu

文献摘要

相似文献

性能问题广泛存在于现代软件系统中。现有的性能优化方法,如动态性能分析,通常没有考虑方法之间的架构连接对性能问题的影响。本文贡献了一种建筑方法,蝴蝶空间建模,调查性能问题。每个Butterfly Space由1)一个seed方法; 2)“上翼”中直接或传递调用seed的方法; 3)“下翼”中由seed直接或传递调用的方法组成。基本原理是,由于调用关系,种子方法的性能影响空间中的所有其他方法,并且受到这些方法的影响。因此,开发人员可以更有效地调查Butterfly Spaces中的多组连接性能改进机会。我们研究了三个真实世界的开源Java项目来评估这种潜力。我们的发现有三个方面:1)如果Butterfly Space的种子方法包含性能问题,那么空间中多达60%的方法也包含性能问题; 2)与动态分析相比,Butterfly Space可以潜在地帮助显著提高精度/召回率并降低识别性能改进机会的成本;和3)可视化动态剖析指标与蝴蝶空间同时有助于揭示两个典型的模式,即昂贵的调用者和低效的调用者,负责性能问题并提供下一步改进的见解。我们相信Butterfly Space建模在研究性能问题方面具有巨大潜力。
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.