skip to main content
10.1145/1133981.1134012acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Accurate, efficient, and adaptive calling context profiling

Published:11 June 2006Publication History

ABSTRACT

Calling context profiles are used in many inter-procedural code optimizations and in overall program understanding. Unfortunately, the collection of profile information is highly intrusive due to the high frequency of method calls in most applications. Previously proposed calling-context profiling mechanisms consequently suffer from either low accuracy, high overhead, or both. We have developed a new approach for building the calling context tree at runtime, called adaptive bursting. By selectively inhibiting redundant profiling, this approach dramatically reduces overhead while preserving profile accuracy. We first demonstrate the drawbacks of previously proposed calling context profiling mechanisms. We show that a low-overhead solution using sampled stack-walking alone is less than 50% accurate, based on degree of overlap with a complete calling-context tree. We also show that a static bursting approach collects a highly accurate profile, but causes an unacceptable application slowdown. Our adaptive solution achieves 85% degree of overlap and provides an 88% hot-edge coverage when using a 0.1 hot-edge threshold, while dramatically reducing overhead compared to the static bursting approach.

References

  1. Colorado bench. http://www-plan.cs.colorado.edu/henkel/projects/colorado bench.Google ScholarGoogle Scholar
  2. Kawa, the java-based scheme system. http://www.gnu.org/software/kawa.Google ScholarGoogle Scholar
  3. G. Ammons, T. Ball, and J. R. Larus. Exploiting hardware performance counters with flow and context sensitive profiling. In SIGPLAN Conference on Programming Language Design and Implementation, pages 85--96, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Arnold and D. Grove. Collecting and Exploiting High-Accuracy Call Graph Profiles in Virtual Machines. In International Symposium on Code Generation and Optimization, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Arnold and B. Ryder. A framework for reducing the cost of instrumented code. In SIGPLAN Conference on Programming Language Design and Implementation, pages 168--179, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Arnold and P. F. Sweeney. Approximating the calling context tree via sampling. IBM Research Report, July 2000.Google ScholarGoogle Scholar
  7. T. Ball and J. R. Larus. Optimally profiling and tracing programs. ACM Transactions on Programming Languages and Systems, 16(4):1319--1360, July 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. R. Bernat and B. P. Miller. Incremental call-path profiling. Technical report, University of Wisconsin, 2004.Google ScholarGoogle Scholar
  9. P. P. Chang, S. A. Mahlke, W. Y. Chen, and W.M. Hwu. Profiledguided automatic inline expansion for c programs. Software-Practice and Experience, 22(5):349--369, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. MIT Press, Cambridge MA and McGraw-Hill, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Standard Performance Evaluation Corporation. Specjbb2000 java business benchmark. http://www.spec.org/jbb2000.Google ScholarGoogle Scholar
  12. Standard Performance Evaluation Corporation. Specjvm98 benchmarks. http://www.spec.org/jvm98.Google ScholarGoogle Scholar
  13. Standard Performance Evaluation Corporation. SPECjAppServer2004. http://www.spec.org/jAppServer2004.Google ScholarGoogle Scholar
  14. P. T. Feller. Value profiling for instructions and memory locations. Masters Thesis CS98-581, University of California San Diego, April 1998.Google ScholarGoogle Scholar
  15. N. Froyd, J. Mellor-Crummey, and R. Fowler. Low-overhead call path profiling of unmodified, optimized code. In ICS '05: Proceedings of the 19th annual international conference on Supercomputing, pages 81--90, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Grove, G. DeFouw, J. Dean, and C. Chambers. Call graph construction in object-oriented languages. In Proceedings OOPSLA '97, pages 108--124, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. N. Grcevski, A. Kielstra, K. Stoodley, M. Stoodley, and V. Sundaresan. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Usenix 3rd Virtual Machine Research and Technology Symposium (VM'04), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. J. Hall. Call path profiling. In Proceedings of the 14th International Conference on Software Engineering, IEEE Computer Society 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. Hazelwood and D. Grove. Adaptive Online Context Sensitive Inlining. In International Symposium on Code Generation and Optimization, pages 253--264, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Hirzel and T. Chilimbi. Bursty tracing: A framework for lowoverhead temporal profiling. In In 4th ACM Workshop on Feedback- Directed and Dynamic Optimization (FDDO-4), December 2001.Google ScholarGoogle Scholar
  21. U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In SIGPLAN Conference on Programming Language Design and Implementation, pages 326--336, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Kessler S. Graham and M. McKusick. An execution profiler for modular programs. Software-Practice and Experience, 13(8):671--685, 1983.Google ScholarGoogle ScholarCross RefCross Ref
  23. J. M. Spivey. Fast, accurate call graph profiling. Software-Practice and Experience, 34(3):249--264, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. Suganuma, T. Yasue, and T. Nakatani. An empirical study of method inlining for a java just-in-time compiler. In JVM-02 Java Virtual Machine Research and Technology Symposium, pages 91--104, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Whaley. A portable sampling-based profiler for java virtual machines. In Java Grande, pages 78--87, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. T. Yasue, T. Suganuma, H. Komatsu, and T. Nakatani. An efficient online path profiling framework for java just-in-time compilers. In PACT Conference on Parallel Architectures and Compilation Techniques, pages 148--158, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Accurate, efficient, and adaptive calling context profiling

    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
    • Published in

      cover image ACM Conferences
      PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation
      June 2006
      438 pages
      ISBN:1595933204
      DOI:10.1145/1133981
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 41, Issue 6
        Proceedings of the 2006 PLDI Conference
        June 2006
        426 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1133255
        Issue’s Table of Contents

      Copyright © 2006 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 11 June 2006

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate406of2,067submissions,20%

    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!