$μ$OpTime: Statically Reducing the Execution Time of Microbenchmark Suites Using Stability Metrics

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Japke, Nils, Grambow, Martin, Laaber, Christoph, Bermbach, David
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866908604628467712
author Japke, Nils
Grambow, Martin
Laaber, Christoph
Bermbach, David
author_facet Japke, Nils
Grambow, Martin
Laaber, Christoph
Bermbach, David
contents Performance regressions have a tremendous impact on the quality of software. One way to catch regressions before they reach production is executing performance tests before deployment, e.g., using microbenchmarks, which measure performance at subroutine level. In projects with many microbenchmarks, this may take several hours due to repeated execution to get accurate results, disqualifying them from frequent use in CI/CD pipelines. We propose $μ$OpTime, a static approach to reduce the execution time of microbenchmark suites by configuring the number of repetitions for each microbenchmark. Based on the results of a full, previous microbenchmark suite run, $μ$OpTime determines the minimal number of (measurement) repetitions with statistical stability metrics that still lead to accurate results. We evaluate $μ$OpTime with an experimental study on 14 open-source projects written in two programming languages and five stability metrics. Our results show that (i) $μ$OpTime reduces the total suite execution time (measurement phase) by up to 95.83% (Go) and 94.17% (Java), (ii) the choice of stability metric depends on the project and programming language, (iii) microbenchmark warmup phases have to be considered for Java projects (potentially leading to higher reductions), and (iv) $μ$OpTime can be used to reliably detect performance regressions in CI/CD pipelines.
format Preprint
id arxiv_https___arxiv_org_abs_2501_12878
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle $μ$OpTime: Statically Reducing the Execution Time of Microbenchmark Suites Using Stability Metrics
Japke, Nils
Grambow, Martin
Laaber, Christoph
Bermbach, David
Software Engineering
Distributed, Parallel, and Cluster Computing
Performance regressions have a tremendous impact on the quality of software. One way to catch regressions before they reach production is executing performance tests before deployment, e.g., using microbenchmarks, which measure performance at subroutine level. In projects with many microbenchmarks, this may take several hours due to repeated execution to get accurate results, disqualifying them from frequent use in CI/CD pipelines. We propose $μ$OpTime, a static approach to reduce the execution time of microbenchmark suites by configuring the number of repetitions for each microbenchmark. Based on the results of a full, previous microbenchmark suite run, $μ$OpTime determines the minimal number of (measurement) repetitions with statistical stability metrics that still lead to accurate results. We evaluate $μ$OpTime with an experimental study on 14 open-source projects written in two programming languages and five stability metrics. Our results show that (i) $μ$OpTime reduces the total suite execution time (measurement phase) by up to 95.83% (Go) and 94.17% (Java), (ii) the choice of stability metric depends on the project and programming language, (iii) microbenchmark warmup phases have to be considered for Java projects (potentially leading to higher reductions), and (iv) $μ$OpTime can be used to reliably detect performance regressions in CI/CD pipelines.
title $μ$OpTime: Statically Reducing the Execution Time of Microbenchmark Suites Using Stability Metrics
topic Software Engineering
Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2501.12878