skip to main content
article

Profiling Java applications using code hotswapping and dynamic call graph revelation

Published:01 January 2004Publication History
Skip Abstract Section

Abstract

Instrumentation-based profiling has many advantages and one serious disadvantage: usually high performance overhead. This overhead can be substantially reduced if only a small part of the target application (for example, one that has previously been identified as a performance bottleneck) is instrumented, while the rest of the application code continues to run at full speed. The value of such a profiling technology would increase further if the code could be instrumented and de-instrumented as many times as needed at run time.In this paper we present an experimental profiling system called JFluid, which includes a modified Java™ VM and a GUI tool, and addresses both of the above issues. Our tool supports instrumentation of a group of methods defined as an arbitrary "root" method plus all methods that it calls (a call subgraph). It appears that static determination of all methods in a call subgraph is difficult in presence of virtual methods, bug fortunately, with dynamic code hotswapping available, two schemes of dynamic call subgraph revelation and instrumentation can be suggested. Measurements that we obtained when performing full and partial program profiling using both schemes show that the overhead can be reduced substantially using this technique, and that one of the schemes generally results in a smaller number of instrumented methods and better performance. Furthermore, we observe that our approach generally works much better for large (for example, J2EE and Web) applications, than for small benchmarks.

References

  1. JSR 163- Java#8482; Platform Profiling Architecture. http://www.jcp.org/jsr/detail/163.jsp.Google ScholarGoogle Scholar
  2. Open System Testing Architecture (OpenSTA). http://www.opensta.org, 2003.Google ScholarGoogle Scholar
  3. G. Ammons, T. Ball, and J. Larus. Exploiting hardware performance counters with flow and context sensitive profiling. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI-97). ACM Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. Ball and J. Larus. Optimally profiling and tracing programs. In ACM Transactions on Programming Languages and Systems, volume 16, pages 1319--1360, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Brear, T. Weise, T. Wiffen, K. Yeung, S. Bennett, and P. Kelly. Search strategies for Java bottleneck location by dynamic instrumentation. UK Performance Engineering Workshop (UKPEW) 2003, Warwick, UK, July 2003.Google ScholarGoogle ScholarCross RefCross Ref
  6. BEA Systems. JRockit 8.1 SDK User Guide. http://edocs.bea.com/wljroekit/docs81/userguide/index.html.Google ScholarGoogle Scholar
  7. B. Calder, P. Feller, and A. Eustace. Value profiling and optimization. Journal of lnstruction Level Parallelism, 1, March 1999.Google ScholarGoogle Scholar
  8. Borland Software Corporation. OptimizeIt Suite. http://www.borland.com/optimizeit, 2002.Google ScholarGoogle Scholar
  9. M. Dmitriev. Safe Evolution of Large and Long-Lived Java Applications. PhD thesis, Department of Computing Science, University of Glasgow, Glasgow G12 8QQ, Scotland, 2001.Google ScholarGoogle Scholar
  10. M. Dmitriev. Application of the HotSwap Technology to Advanced Profiling. In Proceedings of the First Workshop on Unanticipated Software Evolution, held at ECOOP 2002 International Conference, Malaga, Spain, 2002.Google ScholarGoogle Scholar
  11. M. Dmitriev. Design of JFluid: a Profiling Technology and Tool Based on Dynamic Bytecode Instrumentation. Technical report, Sun Microsystems Laboratories, 2600 Casey Avenue, Mountain view, CA 94043, USA, 2004. Available at http://researeh.sun.eom.Google ScholarGoogle Scholar
  12. U. Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, March 1995. Also published as Sun Microsystems Laboratories Technical Report SMLI TR-95-35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Intel Inc. Intel VTune Performance Analyzers. http://www.intel.com/software/products/vtune/.Google ScholarGoogle Scholar
  14. T. Lindholm and F. Yellin. The Java Virtual Machine Specification, Second Edition. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. De Pauw, N. Mitchell, M. Robillard, G. Sevitsky, and H. Sfinivasan. Drive-by Analysis of Running Programs. In Proceedings for Workshop on Software Visualization, International Conference on Software Engineering, May 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Quest Software. JProbe Java Profiler. http://java.quest.com/jprobe/jprobe.shtml.Google ScholarGoogle Scholar
  17. A. Rountev, A. Milanova, and B. Ryder. Fragment Class Analysis for Testing of Polymorphism in Java Software. In Proceedings of the 25th International Conference on Software Engineering (ICSE'03). IEEE Computer Society Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. Sevitsky, W. De Pauw, and R. Konuru. An Information Exploration Tool for Performance Analysis of Java Programs. In Proceedings of TOOLS Europe 2001 Conference, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Standard Performance Evaluation Corporation. SPEC Java Virtual Machine Benchmark Suite. http://www.spec.org/osg/jvm98, August 1998.Google ScholarGoogle Scholar
  20. Sun Microsystems Inc. Java 2 Platform, Enterprise Edition - Documentation. http://java.sun.com/j2ee/docs.html.Google ScholarGoogle Scholar
  21. Sun Microsystems Inc. Java Blueprints. http://java.sun.com/blueprints/code.Google ScholarGoogle Scholar
  22. Sun Microsystems Inc. Java HotSpot#8482; Technology. http://java.sun.com/products/hotspot.Google ScholarGoogle Scholar
  23. Sun Microsystems Inc. Java Virtual Machine Debug Interface Reference. http://java.sun.com/products/jpda/doc/jvmdi-spoc.html, 2000.Google ScholarGoogle Scholar
  24. Sun Microsystems Inc. Java Virtual Machine Wire Protocol Reference. http://java.sun.com/products/jpda/doc/jdwp-spec.html, 2000.Google ScholarGoogle Scholar
  25. Sun Microsystems, Inc. Emerging technologies: jvmstat. http://developers.sun.com/dev/coolstuff/jvmstat, 2003.Google ScholarGoogle Scholar
  26. Wily Technology. Introscope 3.0. http://wilytoehnologios.com/solutions_introscope.html.Google ScholarGoogle Scholar
  27. University of Wisconsin, Madison. ParaDyn Project. http://www.cs.wisc.edu/paradyn/.Google ScholarGoogle Scholar

Index Terms

  1. Profiling Java applications using code hotswapping and dynamic call graph revelation
      Index terms have been assigned to the content through auto-classification.

      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

      Full Access

      • Published in

        cover image ACM SIGSOFT Software Engineering Notes
        ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 1
        January 2004
        300 pages
        ISSN:0163-5948
        DOI:10.1145/974043
        Issue’s Table of Contents
        • cover image ACM Conferences
          WOSP '04: Proceedings of the 4th international workshop on Software and performance
          January 2004
          313 pages
          ISBN:1581136730
          DOI:10.1145/974044

        Copyright © 2004 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 January 2004

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader