2012
DOI: 10.1145/2398857.2384690
|View full text |Cite
|
Sign up to set email alerts
|

Finding reusable data structures

Abstract: A big source of run-time performance problems in largescale, object-oriented applications is the frequent creation of data structures (by the same allocation site) whose lifetimes are disjoint, and whose shapes and data content are always the same. Constructing these data structures and computing the same data values many times is expensive; significant performance improvements can be achieved by reusing their instances, shapes, and/or data values rather than reconstructing them. This paper presents a run-time… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
48
0

Year Published

2012
2012
2017
2017

Publication Types

Select...
3
2

Relationship

4
1

Authors

Journals

citations
Cited by 19 publications
(48 citation statements)
references
References 70 publications
0
48
0
Order By: Relevance
“…In this combo, both the LinkedList (List 0) and the ArrayList (List 1) have abstractions (i.e., placeholders) and concrete elements. For example, the abstraction 1, [2,3] is the placeholder of the No.2 and No.3 elements and it specifies that these two elements are currently in List 1. Different abstractions can be defined by creating different AbstractElement classes (in Figure 4).…”
Section: Fig 4 An Abstraction-concretization Example In Linkedlistmentioning
confidence: 99%
See 2 more Smart Citations
“…In this combo, both the LinkedList (List 0) and the ArrayList (List 1) have abstractions (i.e., placeholders) and concrete elements. For example, the abstraction 1, [2,3] is the placeholder of the No.2 and No.3 elements and it specifies that these two elements are currently in List 1. Different abstractions can be defined by creating different AbstractElement classes (in Figure 4).…”
Section: Fig 4 An Abstraction-concretization Example In Linkedlistmentioning
confidence: 99%
“…Software bloat analysis [19,4,20,1,21,22,3,2,23,24] attempts to identify and remove performance problems due to run-time inefficiencies in the code execution and the use of memory. Mitchell et al [5] propose a manual approach that detects bloat by structuring behavior according to the flow of information, and their later work [4] introduces a way to find data structures that consume excessive amounts of memory.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Previous studies such as [6,7] have demonstrated that, in many cases, manual tuning with developers' insight can be much more effective than fully-automated compiler optimizations. For instance, a programmer may quickly identify that it is problematic to create a 100-field data structure in a loop with only 1 field iteration-dependent, while the sound transformation would give up and terminate silently.…”
Section: Computing Hoistability Measurementsmentioning
confidence: 99%
“…The approach from [18] dynamically identifies inappropriately-used Java collections to detect bloat. Recent work proposes dynamic analyses [6,7] that detect memory bloat by profiling copy chains and finding low-utility data structures, and static analysis [9] that finds inefficiently-used data structures. A detailed overview of the causes of runtime bloat can be found in [19,20].…”
Section: Related Workmentioning
confidence: 99%