arrow
Return

How Software Refactoring Impacts Execution Time

delete2021-12-24
delete16
PRE
AI
L
Luca Traini *
D
Daniele Di Pompeo
M
Michele Tucci
B
Bin Lin
S
Simone Scalabrino
G
Gabriele Bavota
M
Michele Lanza
R
Rocco Oliveto
V
Vittorio Cortellessa
DOI:10.1145/3485136delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Refactoring aims at improving the maintainability of source code without modifying its external behavior. Previous works proposed approaches to recommend refactoring solutions to software developers. The generation of the recommended solutions is guided by metrics acting as proxy for maintainability (e.g., number of code smells removed by the recommended solution). These approaches ignore the impact of the recommended refactorings on other non-functional requirements, such as performance, energy consumption, and so forth. Little is known about the impact of refactoring operations on non-functional requirements other than maintainability. We aim to fill this gap by presenting the largest study to date to investigate the impact of refactoring on software performance, in terms of execution time. We mined the change history of 20 systems that defined performance benchmarks in their repositories, with the goal of identifying commits in which developers implemented refactoring operations impacting code components that are exercised by the performance benchmarks. Through a quantitative and qualitative analysis, we show that refactoring operations can significantly impact the execution time. Indeed, none of the investigated refactoring types can be considered safe in ensuring no performance regression. Refactoring types aimed at decomposing complex code entities (e.g., Extract Class/Interface, Extract Method) have higher chances of triggering performance degradation, suggesting their careful consideration when refactoring performance-critical code.
Keywords:
Software maintainability
performance
execution time
refactoring
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
Papers:
1.2K
Citations:
3.4K

Organization

U
Universita della Svizzera Italiana
Scholars:
3.3K
Papers: 2.8K
Citations: 3
University of LAquila cover
University of LAquila
Scholars:
7.4K
Papers: 6.6K
Citations: 6.7K
U
University of Molise
Scholars:
2.6K
Papers: 2.6K
Citations: 2.8K
researcher View more organizations
Cited Papers

Cited Papers

Successful Use of Transureteroureterostomy in Children: A Clinical Study
err2001-12-01
err0
PREAI
errC. Pesce; L. Costa; P. Campobasso; M. A. Fabbro; L. Musi
errShare
errSave
Psychometric properties of the Chinese version of the Infertility Self-Efficacy Scale
err2016-09-01
err0
errOAAI
errBing Fu; Pingping Yan; Hang Yin; Shujuan Zhu; Qing Liu; Yulan Liu; Chanyuan Dai; Guanxiu Tang; Chunli Yan; Jun Lei
errShare
errSave
errShare
errSave
Structure of Binary Liquid Mixtures. I
err1967-04-15
err0
PREAI
errN. W. Ashcroft; David C. Langreth
errShare
errSave
errShare
errSave
Posterior urethral injuries and the Mitrofanoff principle in children
err2009-07-30
err0
PREAI
errL.G. Freitas Filho; J. Carnevale; A.R. Melo Filho; N.C. Vicente; A.C. Heinisch; J.L. Martins
errShare
errSave
Identification of Move Method Refactoring Opportunities
err2009-05-01
err274
PREAI
errTsantalis, Nikolaos; Chatzigeorgiou, Alexander
errShare
errSave
researcher View more