2010
DOI: 10.1145/1809028.1806617
|View full text |Cite
|
Sign up to set email alerts
|

Finding low-utility data structures

Abstract: Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especially true in highly layered Java applications. Often at the heart of these missed optimization opportunities lie computations that, with great expense, produce data values that have little impact on the program's final output. Constructing a new date formatter to format every date, or populating a large set full of expensively constructed structures only to check its size: these involve costs that are out of line… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
26
0

Year Published

2011
2011
2020
2020

Publication Types

Select...
3
3
2

Relationship

2
6

Authors

Journals

citations
Cited by 31 publications
(26 citation statements)
references
References 44 publications
0
26
0
Order By: Relevance
“…Each of these tools detects one specific type of performance bugs, such as inefficient nested loops [37], under-utilized data structures [46], and temporary object bloat [12,44,45], through static or dynamic program analysis. They are not designed to cover a wide variety of performance bugs.…”
Section: Motivationmentioning
confidence: 99%
See 1 more Smart Citation
“…Each of these tools detects one specific type of performance bugs, such as inefficient nested loops [37], under-utilized data structures [46], and temporary object bloat [12,44,45], through static or dynamic program analysis. They are not designed to cover a wide variety of performance bugs.…”
Section: Motivationmentioning
confidence: 99%
“…Xu et al [46] targets low-utility data structures with unbalanced costs and benefits. Jin et al [21] employ rule-based methods to detect performance bugs that violate efficiency rules that have been violated before.…”
Section: Performance Bug Detectionmentioning
confidence: 99%
“…Each of these tools detects one specific type of performance bugs, such as inefficient nested loops [30], under-utilized data structures [38], and temporary object bloat [11,36,37], through static or dynamic program analysis. They are not designed to cover a wide variety of performance bugs.…”
Section: Motivationmentioning
confidence: 99%
“…Xu et al [38] targets low-utility data structures with unbalanced costs and benefits. Jin et al [18] employ rule-based methods to detect performance bugs that violate efficiency rules that have been violated before.…”
Section: Performance Bug Detectionmentioning
confidence: 99%
“…The synthesis algorithm relies on a dynamic form of thin slicing, an approach to slicing pioneered by Sridharan et al that has been shown to be very effective when computing slices for the purpose of program understanding [15,19]. The basic observation behind thin slicing is that traditional slices contain too much information; for example, a slice for an operation that retrieves an element from a data-structure will contain not only the event that inserted the element into the data-structure but also many other events that modified the data-structure, including many that added and removed other unrelated elements.…”
Section: Dynamic Thin Slicingmentioning
confidence: 99%