|
ABSTRACT
This paper defines a new analysis paradigm, blended program analysis, that enables practical, effective analysis of large framework-based Java applications for performance understanding. Blended analysis combines a dynamic representation of the program calling structure, with a static analysis applied to a region of that calling structure with observed performance problems. A blended escape analysis is presented which enables approximation of object effective lifetimes, to facilitate explanation of the usage of newly created objects in a program region. Performance bottlenecks stemming from overuse of temporary structures are common in framework-based applications. Metrics are introduced to expose how, in aggregate, these applications make use of new objects. Results of empirical experiments with the Trade benchmark are presented. A case study demonstrates how results from a blended escape analysis can help locate, in a region which calls 223 distinct methods, the single call path responsible for a performance problem involving objects created at 9 distinct sites and as far as 6 call levels away.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
Glenn Ammons , Thomas Ball , James R. Larus, Exploiting hardware performance counters with flow and context sensitive profiling, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.85-96, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
3
|
G. Ammons, J. -D. Choi, M. Gupta, and N. Swamy. Finding and removing performance bottlenecks in large systems. In Proc. of the European Conf. on Object-Oriented Prog. (ECOOP), 2004.
|
| |
4
|
S. Artzi, M. Ernst, D. Glasser, and A. Kiezun. Combined static and dynamic mutability analysis. Technical Report MIT-CSAIL-TR-2006-065, MIT CS and AI Lab., Sep. 2006.
|
| |
5
|
M. Q. Beers, C. H. Stork, and M. Franz. Efficiently verifiable escape analysis. In Proc. of the European Conf. on Object-Oriented Prog. (ECOOP), pages 96--122. Springer, 2004.
|
 |
6
|
Bruno Blanchet, Escape analysis for object-oriented languages: application to Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.20-34, November 01-05, 1999, Denver, Colorado, United States
|
 |
7
|
Jeff Bogda , Urs Hölzle, Removing unnecessary synchronization in Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.35-46, November 01-05, 1999, Denver, Colorado, United States
|
 |
8
|
|
| |
9
|
W. DePauw, E. Jensen, N. Mitchell, G. Sevitsky, J. Vlissides, and J. Yang. Visualizing the execution of java programs. In Software Visualization: State of the Art Survey, LNCS 2269, 2002.
|
| |
10
|
M. Ernst. Static and dynamic analysis: Synergy and duality. In Proc. of the Wshp on Dynamic Analysis (WODA), 2003.
|
| |
11
|
|
| |
12
|
A. Groce and R. Joshi. Exploiting traces in program analysis. In Proc. of Int'l Conf. on Tools and Algs for the Construction and Analysis of Systems (TACAS), 2006.
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
| |
16
|
N. Jones and S. Muchnick. Flow analysis and optimization of lisp-like structures. In Program Flow Analysis: Theory and Applications. Prentice Hall, 1982.
|
 |
17
|
David Mandelin , Lin Xu , Rastislav Bodík , Doug Kimelman, Jungloid mining: helping to navigate the API jungle, Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, June 12-15, 2005, Chicago, IL, USA
|
| |
18
|
N. Mitchell. The runtime structure of object ownership. In Proc. of the European Conf. on Object-Oriented Prog. (ECOOP), 2006.
|
| |
19
|
N. Mitchell and G. Sevitsky. Leakbot: An automated and lightweight tool for diagnosing memory leaks in large Java applications. In Proc. of the European Conf. on Object-Oriented Prog. (ECOOP), 2003.
|
| |
20
|
N. Mitchell, G. Sevitsky, and H. Srinivasan. Modeling runtime behavior in framework-based applications. In Proc. of the European Conf. on Object-Oriented Prog. (ECOOP), 2006.
|
 |
21
|
Markus Mock , Darren C. Atkinson , Craig Chambers , Susan J. Eggers, Improving program slicing with dynamic points-to data, Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering, November 18-22, 2002, Charleston, South Carolina, USA
[doi> 10.1145/587051.587062]
|
| |
22
|
B. G. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. In Proc. of the 12th Int'l Conf. on Compiler Constr., pages 126--137, April 2003.
|
 |
23
|
|
 |
24
|
|
 |
25
|
John Whaley , Martin Rinard, Compositional pointer and escape analysis for Java programs, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.187-206, November 01-05, 1999, Denver, Colorado, United States
|
 |
26
|
Xiaotong Zhuang , Mauricio J. Serrano , Harold W. Cain , Jong-Deok Choi, Accurate, efficient, and adaptive calling context profiling, Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, June 11-14, 2006, Ottawa, Ontario, Canada
|
CITED BY 5
|
|
|
|
|
Jun Chen , Steve MacDonald, Towards a better collaboration of static and dynamic analyses for testing concurrent programs, Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging, p.1-9, July 20-21, 2008, Seattle, Washington
|
|
|
|
|
|
|
|
|
|
|