计算机科学 > 软件工程
[提交于 2025年8月9日
]
标题: 对开源Java项目中方法级性能演化的实证研究
标题: An Empirical Study on Method-Level Performance Evolution in Open-Source Java Projects
摘要: 性能是软件开发中的一个关键质量属性,但方法级别的代码更改对性能演变的影响仍然缺乏深入理解。 尽管开发者通常会对哪些类型的修改可能导致性能退化或提升做出直观假设,但这些信念在细粒度层面缺乏实证验证。 我们进行了一项大规模的实证研究,分析了15个托管在GitHub上的成熟开源Java项目中的性能演变。 我们的分析涵盖了包含1,499个方法级别代码更改的739个提交,使用Java微基准测试工具(JMH)进行精确的性能测量,并进行严格的统计分析,以量化性能变化的显著性和幅度。 我们采用了字节码插装来捕获特定方法的执行指标,并系统地分析了四个关键方面:时间性能模式、代码更改类型的相关性、开发人员和复杂度因素以及领域大小的交互作用。 我们的研究结果表明,32.7%的方法级别更改会导致可测量的性能影响,其中退化发生的频率比提升高出1.3倍。 与传统观念相反,我们发现不同代码更改类别之间的性能影响分布没有显著差异,这挑战了基于风险的开发策略。 算法更改显示出最高的改进潜力,但同时也伴随着较大的退化风险。 高级开发人员产生的更改更加稳定,极端变化较少,而代码复杂度与退化可能性增加相关。 领域大小的交互作用揭示了显著的模式,其中Web服务器+小型项目表现出最高的性能不稳定。 我们的研究为将自动化性能测试集成到持续集成流程中提供了实证依据。
文献和引用工具
与本文相关的代码,数据和媒体
alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)
演示
推荐器和搜索工具
arXivLabs:与社区合作伙伴的实验项目
arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。
与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。
有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.