当前位置: X-MOL 学术Softw. Test. Verif. Reliab. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Localizing software performance regressions in web applications by comparing execution timelines
Software Testing, Verification and Reliability ( IF 1.5 ) Pub Date : 2020-08-11 , DOI: 10.1002/stvr.1750
Frolin S. Ocariza 1 , Boyang Zhao 1
Affiliation  

A performance regression in software is defined as an increase in an application step's response time as a result of code changes. Detecting such regressions can be done using profiling tools; however, investigating their root cause is a mostly-manual and time-consuming task. This statement holds true especially when comparing execution timelines, which are dynamic function call trees augmented with response time data; these timelines are compared to find the performance regression-causes – the lowest-level function calls that regressed during execution. When done manually, these comparisons often require the investigator to analyze thousands of function call nodes. Further, performing these comparisons on web applications is challenging due to JavaScript's asynchronous and event-driven model, which introduce noise in the timelines. In response, we propose a design – Zam – that automatically compares execution timelines collected from web applications, to identify performance regression-causes. Our approach uses a hybrid node matching algorithm that recursively attempts to find the longest common subsequence in each call tree level, then aggregates multiple comparisons' results to eliminate noise. Our evaluation of Zam on 10 web applications indicates that it can identify performance regression-causes with a path recall of 100% and a path precision of 96%, while performing comparisons in under a minute on average. We also demonstrate the real-world applicability of Zam, which has been used to successfully complete performance investigations by the performance and reliability team in SAP.

中文翻译:

通过比较执行时间线来定位 Web 应用程序中的软件性能回归

软件中的性能回归被定义为由于代码更改而导致应用程序步骤响应时间的增加。可以使用分析工具来检测此类回归;然而,调查其根本原因主要是手动且耗时的任务。这个说法在比较执行时间线时尤其适用,执行时间线是增加了响应时间数据的动态函数调用树;比较这些时间线以找出性能回归的原因——在执行过程中回归的最低级别的函数调用。手动完成时,这些比较通常需要调查人员分析数千个函数调用节点。此外,在Web 应用程序上执行这些比较由于 JavaScript 的异步和事件驱动模型会在时间线中引入噪音,因此具有挑战性。作为回应,我们提出了一种设计——Zam—— 它可以自动比较从 Web 应用程序收集的执行时间线,以确定性能回归的原因。我们的方法使用混合节点匹配算法,该算法递归地尝试在每个调用树级别中找到最长的公共子序列,然后聚合多个比较的结果以消除噪声。我们在 10 个 Web 应用程序上对Zam 的评估表明,它可以识别性能回归原因,路径召回率为 100%,路径精度为 96%,同时平均在不到一分钟的时间内进行比较。我们还展示了Zam的现实世界适用性,已被 SAP 的性能和可靠性团队用于成功完成性能调查。
更新日期:2020-08-11
down
wechat
bug