Skip to main content

Advertisement

Log in

Aspect-Capable Call Path Profiling of Multi-Threaded Java Applications

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

A primary goal of program performance understanding tools ought to be to focus the user’s attention directly on optimization opportunities where significant cost savings may be found. Optimization opportunities fall into (at least) three broad categories: the call context of a general component may obviate the need for some of its generality; methods or cross-cutting program aspects may be implemented inefficiently for particular contexts of use; and thread dependencies may cause unintended delays. This paper enhances prior work in call path profiling (Hall, 1995) in several ways. It provides two different call path oriented views on program performance, a server view and a thread view. The former helps one optimize for throughput, while the latter is useful for improving thread latency. Threadview incorporates an extended notation for time that allows the user to distinguish times spent when a thread is actually executing from times it is waiting for a monitor, higher- or equal-priority thread, or other operating system event. The new framework also enables aspect-oriented program profiling, even when the original program was not designed in an aspect-oriented fashion. Finally, the approach is implemented in a tool, CpprofJ, an aspect-capable call path profiler for Java. It exploits recent developments in the Java APIs to achieve accurate and portable sampling-based profiling. Several case studies illustrate its use.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  • Anderson, T. and Lazowska, E. 1990. ‘Quartz: A tool for tuning parallel program performance’. In: Proc. of ACM SIGMETRICS 1990 Conf. on Measurement and Modeling of Computer Systems. ACM pp. 115–125.

  • Aspect-oriented software development (web site). http://www.aosd.net.

  • Borland OptimizeIt Suite 5.5 for Java. Whitepaper available at http://www.borland.com/optimizeit/.

  • Call Path Profiles: Relating Costs to Design Decisions. http://www.research.att.com/∼hall/cpp-profject.html.

  • Franz Inc. Allegro COMPOSER User Guide, version 1.0, 1990.

  • Graham, S.L., Kessler, P.B., and McKusick, M.K. 1982. Gprof: A call graph execution profiler’. ACM SIGPLAN Notices 17(6): 120–126.

    Google Scholar 

  • Hall, R.J. 1995. Call Path Refinement Profiles. IEEE Transactions on Software Engineering 21(6).

  • Hall, R.J. and Goldberg, A.J. 1993. Call path profiling of monotonic program resources in UNIX. In: Proc. 1993 USENIX Summer Technical Conf. USENIX Association, 1993.

  • Halter, S.L. and Munroe, S.J. 2001. Enterprise Java Performance. Prentice Hall, Chapt. 8.

  • Java platform debugger architecture overview (web page). http://java.sun.com/j2se/1.3/docs/guide/jpda/jpda.html.

  • Java virtual machine profiler interface (JVMPI). http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/.

  • Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. 2001. Getting Started with Aspect J. Comm. ACM, 44(10): 59–65.

    Article  Google Scholar 

  • Knuth, D.E. 1971. An empirical study of fortran programs. Software–Practice and Experience, 1: 105–133.

    Google Scholar 

  • Larus, J. and Ball, T. 1996. Efficient path profiling. In: Proc. MICRO-29. IEEE, 1996.

  • Pure Software Inc. Quantify User’s Guide, 1993.

  • Sitraka JProbe (web page). http://www.sitraka.com/software/jprobe/.

  • Transaction Processing Performance Council (web site). http://www.tpc.org/.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Robert J. Hall.

Additional information

This paper describes a significant extension to work reported in a paper appearing in Proc. 17th IEEE Intl. Conf. on Automated Software Engineering. Some passages from that paper are reproduced here and are copyright IEEE Computer Society, 2002.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hall, R.J. Aspect-Capable Call Path Profiling of Multi-Threaded Java Applications. Autom Software Eng 12, 415–446 (2005). https://doi.org/10.1007/s10515-005-2647-5

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-005-2647-5

Keywords