{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,8,23]],"date-time":"2026-08-23T18:12:54Z","timestamp":1787508774543,"version":"build-2736575974"},"reference-count":47,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2021,12,24]],"date-time":"2021-12-24T00:00:00Z","timestamp":1640304000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001711","name":"Swiss National Science foundation","doi-asserted-by":"crossref","award":["183587"],"award-info":[{"award-number":["183587"]}],"id":[{"id":"10.13039\/501100001711","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2022,4,30]]},"abstract":"<jats:p>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.<\/jats:p>\n                  <jats:p>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 \u201csafe\u201d 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.<\/jats:p>","DOI":"10.1145\/3485136","type":"journal-article","created":{"date-parts":[[2021,12,24]],"date-time":"2021-12-24T09:22:36Z","timestamp":1640337756000},"page":"1-23","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":45,"title":["How Software Refactoring Impacts Execution Time"],"prefix":"10.1145","volume":"31","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3676-0645","authenticated-orcid":false,"given":"Luca","family":"Traini","sequence":"first","affiliation":[{"name":"University of L\u2019Aquila, L\u2019Aquila, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2041-7375","authenticated-orcid":false,"given":"Daniele","family":"Di Pompeo","sequence":"additional","affiliation":[{"name":"University of L\u2019Aquila, L\u2019Aquila, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0329-1101","authenticated-orcid":false,"given":"Michele","family":"Tucci","sequence":"additional","affiliation":[{"name":"University of L\u2019Aquila, L\u2019Aquila, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6307-8460","authenticated-orcid":false,"given":"Bin","family":"Lin","sequence":"additional","affiliation":[{"name":"Software Institute - USI, Lugano, Swizerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1764-9685","authenticated-orcid":false,"given":"Simone","family":"Scalabrino","sequence":"additional","affiliation":[{"name":"University of Molise, Pesche (IS), Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2216-3148","authenticated-orcid":false,"given":"Gabriele","family":"Bavota","sequence":"additional","affiliation":[{"name":"Software Institute - USI, Lugano, Swizerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Michele","family":"Lanza","sequence":"additional","affiliation":[{"name":"Software Institute - USI, Lugano, Swizerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Rocco","family":"Oliveto","sequence":"additional","affiliation":[{"name":"University of Molise, Pesche (IS), Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Vittorio","family":"Cortellessa","sequence":"additional","affiliation":[{"name":"University of L\u2019Aquila, L\u2019Aquila, Italy"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2021,12,24]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2020.3005995"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSA.2019.00017"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-45135-5_15"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2013.60"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/3358960.3379132"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2014.73"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC.2019.00049"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2011.19"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/3358960.3375791"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511802843"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2005.74"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380351"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297033"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449794"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/3417990.3418743"},{"key":"e_1_3_2_17_2","first-page":"145","volume-title":"2012 34th International Conference on Software Engineering (ICSE\u201912)","author":"Han Shi","unstructured":"Shi Han, Yingnong Dang, Song Ge, Dongmei Zhang, and Tao Xie. 2012. Performance debugging in the large via mining millions of stack traces. In 2012 34th International Conference on Software Engineering (ICSE\u201912). 145\u2013155. DOI:https:\/\/doi.org\/10.1109\/ICSE.2012.6227198ZSCC: 0000165 ISSN: 1558-1225."},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2013.6624018"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/2345156.2254075"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491894.2464160"},{"key":"e_1_3_2_21_2","unstructured":"Tomas Kalibera and Richard Jones. 2020. Quantifying Performance Changes with Effect Size Confidence Intervals. (2020). arXiv:stat.ME\/2007.10899."},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-011-9171-y"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/3196398.3196407"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-019-09681-1"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409683"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/3030207.3030213"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2019.8667992"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-015-9413-5"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/2729974"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3182524"},{"key":"e_1_3_2_31_2","first-page":"252","volume-title":"Proceedings of the 2nd IFIP Central and East European Conference on Software Engineering Techniques (CEE-SET\u201907)","author":"Moser Raimund","year":"2007","unstructured":"Raimund Moser, Pekka Abrahamsson, Witold Pedrycz, Alberto Sillitti, and Giancarlo Succi. 2007. A case study on the impact of refactoring on quality and productivity in an agile team. In Proceedings of the 2nd IFIP Central and East European Conference on Software Engineering Techniques (CEE-SET\u201907). Springer, 252\u2013266."},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/1508284.1508275"},{"key":"e_1_3_2_33_2","volume-title":"Java Performance: The Definitive Guide (1st ed.)","author":"Oaks Scott","year":"2014","unstructured":"Scott Oaks. 2014. Java Performance: The Definitive Guide (1st ed.). O\u2019Reilly Media, Inc."},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2019.00123"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1080\/02664760903046102"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/2652524.2652538"},{"key":"e_1_3_2_37_2","first-page":"1","volume-title":"2019 Working Conference on Software Visualization (VISSOFT\u201919)","author":"Alcocer Juan Pablo Sandoval","unstructured":"Juan Pablo Sandoval Alcocer, Fabian Beck, and Alexandre Bergel. 2019. Performance evolution matrix: Visualizing performance variations along software versions. In 2019 Working Conference on Software Visualization (VISSOFT\u201919). 1\u201311. DOI:https:\/\/doi.org\/10.1109\/VISSOFT.2019.00009ZSCC: 0000001."},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/2936313.2816718"},{"key":"e_1_3_2_39_2","first-page":"37","volume-title":"Proceedings of the 7th ACM\/SPEC on International Conference on Performance Engineering (ICPE\u201916)","author":"Alcocer Juan Pablo Sandoval","unstructured":"Juan Pablo Sandoval Alcocer, Alexandre Bergel, and Marco Tulio Valente. Learning from source code history to identify performance failures. In Proceedings of the 7th ACM\/SPEC on International Conference on Performance Engineering (ICPE\u201916). Association for Computing Machinery, 37\u201348. DOI:https:\/\/doi.org\/10.1145\/2851553.2851571ZSCC: 0000024."},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.5555\/1529939"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/3030207.3030226"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2014.18"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/3422392.3422408"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/3168830"},{"key":"e_1_3_2_45_2","article-title":"How Software Refactoring Impacts Execution Time - Replication Package","author":"Traini Luca","year":"2020","unstructured":"Luca Traini, Daniele Di Pompeo, Michele Tucci, Bin Lin, Simone Scalabrino, Gabriele Bavota, Michele Lanza, Rocco Oliveto, and Vittorio Cortellessa. 2020. How Software Refactoring Impacts Execution Time - Replication Package. https:\/\/github.com\/SEALABQualityGroup\/replicationpackage_refperf.","journal-title":"https:\/\/github.com\/SEALABQualityGroup\/replicationpackage_refperf"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.1"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2020.3007722"},{"key":"e_1_3_2_48_2","first-page":"365","volume-title":"Proceedings of the 5th International Conference on Information and Communication Technology for Sustainability (ICT4S\u201918) (EPiC Series in Computing)","volume":"52","author":"Verdecchia Roberto","year":"2018","unstructured":"Roberto Verdecchia, Ren\u00e9 Aparicio Saez, Giuseppe Procaccianti, and Patricia Lago. 2018. Empirical evaluation of the energy impact of refactoring code smells. In Proceedings of the 5th International Conference on Information and Communication Technology for Sustainability (ICT4S\u201918) (EPiC Series in Computing), Vol. 52. 365\u2013383."}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485136","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3485136","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:18:35Z","timestamp":1750177115000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485136"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,12,24]]},"references-count":47,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2022,4,30]]}},"alternative-id":["10.1145\/3485136"],"URL":"https:\/\/doi.org\/10.1145\/3485136","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,12,24]]},"assertion":[{"value":"2020-12-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-12-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}