Automated Identification of Performance Changes at Code Level

03/24/2023
by   David Georg Reichelt, et al.
0

To develop software with optimal performance, even small performance changes need to be identified. Identifying performance changes is challenging since the performance of software is influenced by non-deterministic factors. Therefore, not every performance change is measurable with reasonable effort. In this work, we discuss which performance changes are measurable at code level with reasonable measurement effort and how to identify them. We present (1) an analysis of the boundaries of measuring performance changes, (2) an approach for determining a configuration for reproducible performance change identification, and (3) an evaluation comparing of how well our approach is able to identify performance changes in the application server Jetty compared with the usage of Jetty's own performance regression benchmarks. Thereby, we find (1) that small performance differences are only measurable by fine-grained measurement workloads, (2) that performance changes caused by the change of one operation can be identified using a unit-test-sized workload definition and a suitable configuration, and (3) that using our approach identifies small performance regressions more efficiently than using Jetty's performance regression benchmarks.

READ FULL TEXT
research
03/06/2019

The standard coder: a machine learning approach to measuring the effort required to produce source code change

We apply machine learning to version control data to measure the quantit...
research
06/30/2020

Incremental Calibration of Architectural Performance Models with Parametric Dependencies

Architecture-based Performance Prediction (AbPP) allows evaluation of th...
research
03/12/2020

CC2Vec: Distributed Representations of Code Changes

Existing work on software patches often use features specific to a singl...
research
09/13/2019

V2: Fast Detection of Configuration Drift in Python

Code snippets are prevalent, but are hard to reuse because they often la...
research
07/24/2023

Monitoring Cascading Changes of Resources in the Kubernetes Control Plane

Kubernetes is a container management system that has many automated func...
research
08/29/2022

Resolving inconsistencies of runtime configuration changes through change propagation and adjustments

A system configuration may be modified at runtime to adapt the system to...
research
12/19/2022

Using Microbenchmark Suites to Detect Application Performance Changes

Software performance changes are costly and often hard to detect pre-rel...

Please sign up or login with your details

Forgot password? Click here to reset