ABSTRACT
It has been observed that component-based applications exhibit object churn, the excessive creation of short-lived objects, often caused by trading performance for modularity. Because churned objects are short-lived, they appear to be good candidates for stack allocation. Unfortunately, most churned objects escape their allocating function, making escape analysis ineffective.
We reduce object churn with three contributions. First, we formalize two measures of churn, capture and control (15). Second, we develop lightweight dynamic analyses for measuring both capture and control. Third, we develop an algorithm that uses capture and control to inline portions of the call graph to make churned objects non-escaping, enabling churn optimization via escape analysis.
JOLT is a lightweight dynamic churn optimizer that uses our algorithms. We embedded JOLT in the JIT compiler of the IBM J9 commercial JVM, and evaluated JOLT on large application frameworks, including Eclipse and JBoss. We found that JOLT eliminates over 4 times as many allocations as a state-of-the-art escape analysis alone.
- Spring framework. http://www.springframework.org/.Google Scholar
- TPC-W NYU. http://cs.nyu.edu/~totok/professional/software/tpcw/tpcw.html.Google Scholar
- Personal communication with William McCloskey, October 2007.Google Scholar
- Ali-Reza Adl-Tabatabai, Jay Bharadwaj, Dong-Yuan Chen, Anwar Ghuloum, Vijay Menon, Brian Murphy, Mauricio Serrano, and Tatiana Shpeisman. The StarJIT compiler: A dy-namic compiler for managed runtime environments. Intel Technology Journal, 7(1):19--31, February 2003.Google Scholar
- Matthew Arnold, Stephen Fink, Vivek Sarkar, and Peter F. Sweeney. A comparative study of static and profile-based heuristics for inlining. In DYNAMO '00: Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization, pages 52--64, New York, NY, USA, 2000. ACM. Google Scholar
Digital Library
- Matthew Arnold, Michael Hind, and Barbara G. Ryder. On-line feedback-directed optimization of java. In Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 111--129. ACM Press, 2002. Google Scholar
Digital Library
- Matthew Arnold and Barbara G. Ryder. A framework for reducing the cost of instrumented code. In Proceedings of the 2001 ACM SIGPLAN Conference on Prgramming Language Design and Implementation (PLDI), pages 168--179, June 2001. Google Scholar
Digital Library
- the inlined method's body. Andrew Ayers, Richard Schooler, and Robert Gottlieb. Aggressive inlining. SIGPLAN Not., 32(5):134--145, 1997. Google Scholar
Digital Library
- Stephen M. Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khang, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, B. Moss, Aashish Phansalkar, Darko Stefanović, Thomas VanDrunen, Daniel von Dincklage, and Ben Wiedermann. The dacapo benchmarks: java benchmarking development and analysis. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 169--190, New York, NY, USA, 2006. ACM. Google Scholar
Digital Library
- Bruno Blanchet. Escape analysis for object-oriented languages: application to java. In OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 20--34, New York, NY, USA, 1999. ACM. Google Scholar
Digital Library
- Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software-Practice and Experience, 22(5):349--369, May 1992. Google Scholar
Digital Library
- Jong-Deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C. Sreedhar, and Sam Midkiff. Escape analysis for java. In OOPSLA '99: Proceedings of the 14th ACM SIG-PLAN conference on Object-oriented programming, systems, languages, and applications, pages 1--19, New York, NY, USA, 1999. ACM. Google Scholar
Digital Library
- Jeffrey Dean and Craig Chambers. Towards better inlining decisions using inlining trials. In LFP '94: Proceedings of the 1994 ACM conference on LISP and functional programming, pages 273--282, New York, NY, USA, 1994. ACM. Google Scholar
Digital Library
- Alan Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifica-tions. In POPL '90: Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 157--168, New York, NY, USA, 1990. ACM. Google Scholar
Digital Library
- Bruno Dufour, Barbara G. Ryder, and Gary Sevitsky. Blended analysis for performance understanding of framework-based applications. In ISSTA '07: Proceedings of the 2007 international symposium on Software testing and analysis, pages 118--128, New York, NY, USA, 2007. ACM. Google Scholar
Digital Library
- Marc Fleury and Francisco Reverbel. The JBoss extensible server. In Markus Endler and Douglas Schmidt, editors, Middleware 2003 -- ACM/IFIP/USENIX International Middleware Conference, volume 2672 of LNCS, pages 344--373. Springer-Verlag, 2003. Google Scholar
Digital Library
- David Gay and Bjarne Steensgaard. Fast escape analysis and stack allocation for object-based programs. In th International Conference on Compiler Construction (CC'2000), volume 1781. Springer-Verlag, 2000. Google Scholar
Digital Library
- Nikola Grcevski, Allan Kilstra, Kevin Stoodley, Mark Stoodley, and Vijay Sundaresan. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In 3rd Virtual Machine Research and Technology Symposium (VM), May 2004. Google Scholar
Digital Library
- Kazuaki Ishizaki, Mikio Takeuchi, Kiyokuni Kawachiya, Toshio Suganuma, Osamu Gohda, Tatsushi Inagaki, Akira Koseki, Kazunori Ogata, Motohiro Kawahito, Toshiaki Yasue, Takeshi Ogasawara, Tamiya Onodera, Hideaki Komatsu, and Toshio Nakatani. Effectiveness of cross-platform optimizations for a Java just-in-time compiler. ACMSIGPLAN Notices, 38(11):187--204, November 2003. Google Scholar
Digital Library
- Owen Kaser and C. R. Ramakrishnan. Evaluating inlining techniques. Computer Languages, 24(2):55--72, 1998. Google Scholar
Digital Library
- Thomas Kotzmann and Hanspeter Mössenböck. Escape analysis in the context of dynamic compilation and deoptimization. In VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, pages 111--120, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- Thomas Kotzmann and Hanspeter Mossenbock. Run-time support for optimizations based on escape analysis. In CGO'07: Proceedings of the International Symposium on Code Generation and Optimization, pages 49--60, Washington, DC, USA, 2007. IEEE Computer Society. Google Scholar
Digital Library
- Nick Mitchell, Gary Sevitsky, and Harini Srinivasan. Modeling runtime behavior in framework-based applications. In European Conference on Object-Oriented Computing (ECOOP) 2006, 2006. Google Scholar
Digital Library
- Takeshi Ogasawara, Hideaki Komatsu, and Toshio Nakatani. Edo: Exception-directed optimization in java. ACM Trans. Program. Lang. Syst., 28(1):70--105, 2006. Google Scholar
Digital Library
- Michael Paleczny, Christopher Vick, and Cliff Click. The Java Hotspot server compiler. In Java Virtual Machine Research and Technology Symposium (JVM), pages 1--12, April 2001. Google Scholar
Digital Library
- Young Gil Park and Benjamin Goldberg. Escape analysis on lists. In PLDI '92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, pages 116--127, New York, NY, USA, 1992. ACM. Google Scholar
Digital Library
- Robert W. Scheifler. An analysis of inline substitution for a structured programming language. Commun. ACM, 20(9):647--654, 1977. Google Scholar
Digital Library
- Toshio Suganuma, Toshiaki Yasue, Motohiro Kawahito, Hideaki Komatsu, and Toshio Nakatani. A dynamic optimization framework for a Java just-in-time compiler. ACM SIG-PLAN Notices, 36(11):180--195, November 2001. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). Google Scholar
Digital Library
- John Whaley and Martin Rinard. Compositional pointer and escape analysis for java programs. In OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 187--206, New York, NY, USA, 1999. ACM. Google Scholar
Digital Library
Index Terms
Jolt: lightweight dynamic analysis and removal of object churn
Recommendations
Jolt: lightweight dynamic analysis and removal of object churn
It has been observed that component-based applications exhibit object churn, the excessive creation of short-lived objects, often caused by trading performance for modularity. Because churned objects are short-lived, they appear to be good candidates ...
Partial Escape Analysis and Scalar Replacement for Java
CGO '14: Proceedings of Annual IEEE/ACM International Symposium on Code Generation and OptimizationEscape Analysis allows a compiler to determine whether an object is accessible outside the allocating method or thread. This information is used to perform optimizations such as Scalar Replacement, Stack Allocation and Lock Elision, allowing modern ...
Escape analysis for synchronization removal
SAC '06: Proceedings of the 2006 ACM symposium on Applied computingIn this paper we introduce our escape analysis framework for Java, which is a kind of flow-insensitive, inter-procedural, and context-sensitive data flow analysis. And we present an efficient static intra-procedural algorithm for inferring the set of ...







Comments