ePrints@IIScePrints@IISc Home | About | Browse | Latest Additions | Advanced Search | Contact | Help

Reuse, recycle to de-bloat software

Bhattacharya, Suparna and Nanda, Mangala Gowri and Gopinath, K and Gupta, Manish (2011) Reuse, recycle to de-bloat software. In: ECOOP 2011 – Object-Oriented Programming, July 25-29, 2011, Lancaster, Uk.

Full text not available from this repository. (Request a copy)
Official URL: http://dx.doi.org/10.1007/978-3-642-22655-7_19


Most Java programmers would agree that Java is a language that promotes a philosophy of “create and go forth”. By design, temporary objects are meant to be created on the heap, possibly used and then abandoned to be collected by the garbage collector. Excessive generation of temporary objects is termed “object churn” and is a form of software bloat that often leads to performance and memory problems. To mitigate this problem, many compiler optimizations aim at identifying objects that may be allocated on the stack. However, most such optimizations miss large opportunities for memory reuse when dealing with objects inside loops or when dealing with container objects. In this paper, we describe a novel algorithm that detects bloat caused by the creation of temporary container and String objects within a loop. Our analysis determines which objects created within a loop can be reused. Then we describe a source-to-source transformation that efficiently reuses such objects. Empirical evaluation indicates that our solution can reduce upto 40% of temporary object allocations in large programs, resulting in a performance improvement that can be as high as a 20% reduction in the run time, specifically when a program has a high churn rate or when the program is memory intensive and needs to run the GC often.

Item Type: Conference Paper
Publisher: Springer Berlin Heidelberg
Additional Information: Copyright of this article belongs to Springer Berlin Heidelberg.
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Date Deposited: 18 Mar 2013 09:19
Last Modified: 18 Mar 2013 09:19
URI: http://eprints.iisc.ac.in/id/eprint/46013

Actions (login required)

View Item View Item