Rama, GM and Komondoor, R (2018) Detecting Full Initialization Points of Objects to Support Code Refactorings. In: 24th Asia-Pacific Software Engineering Conference, APSEC 2017, 4 - 8 December 2017, Nanjing, Jiangsu, pp. 110-119.
PDF
APSEC 2017_2017_110-119_2018.pdf - Published Version Restricted to Registered users only Download (620kB) | Request a copy |
Abstract
A common need of refactorings that involve object allocations is to determine precisely the program points at which objects allocated at a given allocation site become fully initialized. In this paper we formalize the notion of full initialization points (FIPs) of allocation sites, and present a static analysis to determine precisely these program points. While this analysis can benefit several allocation-site refactorings, to demonstrate its usefulness we select two specific refactorings in this paper - object sharing refactoring and immutability refactoring. By introducing code to cache and share objects at the FIPs suggested by our analysis, object-sharing refactoring was able to obtain a mean memory savings of 11.4 on a set of real Java benchmarks. Immutability refactoring guided by our analysis achieved a mean runtime speedup of 1.6X compared to performing the same refactoring using a baseline approach.
Item Type: | Conference Paper |
---|---|
Publication: | Proceedings - Asia-Pacific Software Engineering Conference, APSEC |
Publisher: | IEEE Computer Society |
Additional Information: | The copyright for this article belongs to the IEEE Computer Society. |
Keywords: | Object detection; Software engineering, Allocation sites; Initialization points; Memory savings; Object allocation; Object initialization; Object sharing; Program points; Refactorings, Static analysis |
Department/Centre: | Division of Electrical Sciences > Computer Science & Automation |
Date Deposited: | 08 Aug 2022 11:37 |
Last Modified: | 08 Aug 2022 11:37 |
URI: | https://eprints.iisc.ac.in/id/eprint/75634 |
Actions (login required)
View Item |