Record Details

Identifying Method Memoization Opportunities in Java Programs

Electronic Theses of Indian Institute of Science

View Archive Info
 
 
Field Value
 
Title Identifying Method Memoization Opportunities in Java Programs
 
Creator Chugh, Pallavi
 
Subject Java Program
Memoization
Cacheable Data
Dynamic Analysis
Code Re-factoring
Run-time Bloat
Performance Optimization
Computer Science
 
Description Memorization of a method is a commonly used re-factoring wherein developer modules the code of a method to save return values for some or all incoming parameter values. Whenever a parameter-tuple is received for the second or subsequent time, the method's execution can be elided and the corresponding saved value can be returned. It is quite challenging for developers to identify suitable methods for memorization, as these may not necessarily be the methods that account for a high fraction of the running time in the program. What are really sought are the methods that cumulatively incur signi_cant execution time in invocations that receive repeat parameter values. Our primary contribution is a novel dynamic analysis approach that emits a report that contains, for each method in an application, an estimate of the execution time savings to be expected from memorizing this method. The key technical novelty of our approach is a set of design elements that allow our approach to target real-world programs, and to compute the estimates in a re-grained manner. We describe our approach in detail, and evaluate an implementation of it on several real-world programs. Our evaluation reveals that there do exist many methods with good estimated savings that the approach is reasonably ancient, and that it has good precision (relative to actual savings).
 
Contributor Raghavan, K V
 
Date 2017-12-12T20:48:12Z
2017-12-12T20:48:12Z
2017-12-13
2016
 
Type Thesis
 
Identifier http://etd.iisc.ernet.in/handle/2005/2917
http://etd.ncsi.iisc.ernet.in/abstracts/3778/G27782-Abs.pdf
 
Language en_US
 
Relation G27782