Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering 2014
DOI: 10.1145/2642937.2642992
|View full text |Cite
|
Sign up to set email alerts
|

A dynamic analysis to support object-sharing code refactorings

Abstract: Creation of large numbers of co-existing long-lived isomorphic objects increases the memory footprint of applications significantly. In this paper we propose a dynamic-analysis based approach that detects allocation sites that create large numbers of long-lived isomorphic objects, estimates quantitatively the memory savings to be obtained by sharing isomorphic objects created at these sites, and also checks whether certain necessary conditions for safely employing object sharing hold. We have implemented our a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
6
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
5
1

Relationship

0
6

Authors

Journals

citations
Cited by 6 publications
(6 citation statements)
references
References 31 publications
0
6
0
Order By: Relevance
“…Their common idea is that some instances in the memory of a running program are equivalent and all equivalent instances can be replaced by a single instance without affecting the execution of the program [3], [4]. Examples can be found in [20], [21], [22], or [23]. In [20], it is pointed out that a thorough comparison of two objects (in order to determine their equality) requires checking of the graphs of the internal structures of the compared objects for isomorphism.…”
Section: B Exploration Of Object Internal Structurementioning
confidence: 99%
“…Their common idea is that some instances in the memory of a running program are equivalent and all equivalent instances can be replaced by a single instance without affecting the execution of the program [3], [4]. Examples can be found in [20], [21], [22], or [23]. In [20], it is pointed out that a thorough comparison of two objects (in order to determine their equality) requires checking of the graphs of the internal structures of the compared objects for isomorphism.…”
Section: B Exploration Of Object Internal Structurementioning
confidence: 99%
“…In contrast to [12], the technique described in [14] is focused on the long-lived objects, which are candidates for caching. For the speedup of the object comparison, a form of hash value called "fingerprint" of the object is used.…”
Section: A Memory Optimizationmentioning
confidence: 99%
“…For the speedup of the object comparison, a form of hash value called "fingerprint" of the object is used. In standard classes from the java.lang package, the equals() method is used [14].…”
Section: A Memory Optimizationmentioning
confidence: 99%
“…In additional experiments simulating the semantics of related memory profilers, which check for isomorphic heap graphs [18,14], we measured that MASHO uncovers up to 14%, and at median 4%, more unique caching opportunities in the aforementioned benchmarks than the related work can provide -due to the additional abstraction facilities.…”
Section: Q-actionablementioning
confidence: 99%
“…Rama and Komondoor [18] worked on an extension of OEP and introduced a tool, the Object Caching Advisor (OCA), to support introducing hash-consing at the source-code level as a refactoring. The authors reuse a fingerprinting function, introduced by Xu [28], that runs in O(size of object graph) and yields a runtime overhead ranging from 98-2520x.…”
Section: Related Workmentioning
confidence: 99%