Lecture Notes in Computer Science
DOI: 10.1007/978-3-540-71229-9_6
|View full text |Cite
|
Sign up to set email alerts
|

Correcting the Dynamic Call Graph Using Control-Flow Constraints

Abstract: Abstract. To reason about programs, dynamic optimizers and analysis tools use sampling to collect a dynamic call graph (DCG). However, sampling has not achieved high accuracy with low runtime overhead. As object-oriented programmers compose increasingly complex programs, inaccurate call graphs will inhibit analysis and optimizations. This paper demonstrates how to use static and dynamic control flow graph (CFG) constraints to improve the accuracy of the DCG. We introduce the frequency dominator (FDOM), a novel… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
10
0

Publication Types

Select...
4
2
1

Relationship

1
6

Authors

Journals

citations
Cited by 8 publications
(11 citation statements)
references
References 14 publications
1
10
0
Order By: Relevance
“…The correction technique of using call density (Call density) shows the improvement of 0.5% on average, and the correction using both call density and sampling latency (Call density and sampling latency) improves the performance up to 1% on average. While this modest improvement is consistent with the prior work [Arnold and Grove 2005;Lee et al 2007], some relatively large and complex benchmarks show potential of using high-accuracy dynamic call graphs. For instance, our corrected dynamic call graphs improve the performance of bloat, jython, jack, lusearch, and xalan by 6.1%, 1.8%, 1.5%, 1.5%, and 1.5%.…”
Section: Performancesupporting
confidence: 87%
See 2 more Smart Citations
“…The correction technique of using call density (Call density) shows the improvement of 0.5% on average, and the correction using both call density and sampling latency (Call density and sampling latency) improves the performance up to 1% on average. While this modest improvement is consistent with the prior work [Arnold and Grove 2005;Lee et al 2007], some relatively large and complex benchmarks show potential of using high-accuracy dynamic call graphs. For instance, our corrected dynamic call graphs improve the performance of bloat, jython, jack, lusearch, and xalan by 6.1%, 1.8%, 1.5%, 1.5%, and 1.5%.…”
Section: Performancesupporting
confidence: 87%
“…While our revised inline oracle resorts to static heuristics to handle a few pathological cases, we strongly believe that profile-guided inlining oracles should weaken static heuristics as much as possible as low overhead sampling and correction techniques will evolve and mature [Arnold and Grove 2005;Lee et al 2007;Chen et al 2010;Wu et al 2013;Nakaike et al 2014]. The performance improvement from static inlining of inactive calls to trivial methods would be either marginal or unmeasurable in a registerrich environment (e.g., ×86-64).…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Nevertheless, most of them are based on using "fan-in analysis techniques." Therefore, they are depending on either dependency graphs or call graphs, which suffer from precision issues [18]. Notwithstanding, there is not much research depending on the original source of data utilizing a specific technique, for instance, dynamic coupling measurements [14].…”
Section: Related Workmentioning
confidence: 99%
“…Jtop automatically extracts the static call graph in order to generate nonredundant test cases. Future tools can further improve the capability of Jtop by constructing a dynamic call graph (Lee et al, 2007), which extracts an exact record of program execution frequencies of call relationship based on the profile information. Ultimately, it is beneficial in optimizing overall program under test behavior.…”
Section: Comparison Of Randomized Unit Testing Based Tsr Toolsmentioning
confidence: 99%