Butterfly Space: An Architectural Approach for Investigating Performance Issues

Yutong Zhao, Lu Xiao, Xiao Wang, Zhifei Chen, Bihuan Chen, Yang Liu
{"title":"Butterfly Space: An Architectural Approach for Investigating Performance Issues","authors":"Yutong Zhao, Lu Xiao, Xiao Wang, Zhifei Chen, Bihuan Chen, Yang Liu","doi":"10.1109/ICSA47634.2020.00027","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":136997,"journal":{"name":"2020 IEEE International Conference on Software Architecture (ICSA)","volume":"06 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE International Conference on Software Architecture (ICSA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSA47634.2020.00027","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

Abstract

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.
蝴蝶空间:研究性能问题的架构方法
性能问题在现代软件系统中广泛存在。现有的性能优化方法,如动态分析,通常没有考虑方法之间的体系结构连接对性能问题的影响。本文提供了一种架构方法,蝴蝶空间建模,来研究性能问题。每个蝴蝶空间由1)一个种子方法组成;2)“上翼”中直接或传递调用种子的方法;3)“下翼”中由种子直接或传递调用的方法。其基本原理是,由于调用关系,种子方法的性能会影响空间中的所有其他方法,并受其影响。因此,开发人员可以更有效地调查Butterfly Spaces中连接的性能改进机会组。我们研究了三个真实的开源Java项目来评估这种潜力。我们的发现有三个方面:1)如果蝴蝶空间的种子方法存在性能问题,那么该空间中高达60%的方法也存在性能问题;2)与动态分析相比,蝶形空间可能有助于显著提高精度/召回率,并降低识别性能改进机会的成本;3)使用Butterfly Spaces同时可视化动态分析指标有助于揭示导致性能问题的两种典型模式,即昂贵的调用者和低效的调用者,并提供下一步改进的见解。我们相信Butterfly Space建模在研究性能问题方面具有很大的潜力。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信