AI-driven Java Performance Testing: Balancing Result Quality with Testing Time

2024年08月09日
  • 简介
    性能测试旨在揭示软件系统的效率问题。为了既有效又实用,性能测试的设计必须在结果质量和测试时间之间达到合理的权衡。在Java环境中,这变得尤其具有挑战性,因为软件经历了即时编译的预热阶段。在此阶段,性能测量受到严重波动的影响,这可能会对性能测试结果的质量产生不利影响。然而,这些方法通常提供次优的预热阶段估计,导致预热迭代不足或过度,这可能会降低结果质量或增加测试时间。目前仍缺乏对如何正确解决此问题的共识。在这里,我们提出并研究了一种基于人工智能的框架,以在运行时动态停止预热迭代。具体而言,我们的框架利用了时间序列分类(TSC)中的人工智能最新进展,以预测测试执行期间预热阶段的结束。我们通过对从JMH微基准测试执行中获得的50万个测量段进行三个不同TSC模型的训练来进行实验。我们发现,我们的框架显著提高了最新实践和最新方法提供的预热估计的准确性。这种更高的估计精度导致微基准测试中高达+35.3%的结果质量或测试时间的净改善。我们的研究强调了将人工智能集成到动态估计预热阶段结束的过程中可以提高Java性能测试的成本效益。
  • 作者讲解
  • 图表
  • 解决问题
    如何解决Java性能测试中热身期的影响问题?
  • 关键思路
    使用基于时间序列分类的人工智能框架来动态停止热身期迭代,提高测试效率和准确性。
  • 其它亮点
    论文使用了三种不同的时间序列分类模型对JMH微基准测试的数据进行训练,实验结果表明该框架可显著提高热身期估计的准确性和测试效率,对于多达35.3%的微基准测试有所改善。该研究的亮点在于提出了一个新的解决方案,即使用人工智能来动态停止热身期迭代。
  • 相关研究
    近期的相关研究包括:1. "A Comprehensive Study of Java Performance Benchmarks";2. "Automatic Performance Regression Detection for Java Applications";3. "Performance Testing in Continuous Integration: A Survey and a Toolbox"。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问