skip to main content
10.1145/1449764.1449775acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Jolt: lightweight dynamic analysis and removal of object churn

Published:19 October 2008Publication History

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.

References

  1. Spring framework. http://www.springframework.org/.Google ScholarGoogle Scholar
  2. TPC-W NYU. http://cs.nyu.edu/~totok/professional/software/tpcw/tpcw.html.Google ScholarGoogle Scholar
  3. Personal communication with William McCloskey, October 2007.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. the inlined method's body. Andrew Ayers, Richard Schooler, and Robert Gottlieb. Aggressive inlining. SIGPLAN Not., 32(5):134--145, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. Owen Kaser and C. R. Ramakrishnan. Evaluating inlining techniques. Computer Languages, 24(2):55--72, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. Takeshi Ogasawara, Hideaki Komatsu, and Toshio Nakatani. Edo: Exception-directed optimization in java. ACM Trans. Program. Lang. Syst., 28(1):70--105, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. Robert W. Scheifler. An analysis of inline substitution for a structured programming language. Commun. ACM, 20(9):647--654, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Jolt: lightweight dynamic analysis and removal of object churn

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!