Skip to main content

Analyzing Memory Reference Traces of Java Programs

  • Chapter
  • 115 Accesses

Part of the book series: The Springer International Series in Engineering and Computer Science ((SECS,volume 542))

Abstract

Although the Java programming language is rapidly gaining in popularity and importance for the development of serious applications, very little is known about the execution characteristics and the architectural requirements of the Java programs. In this chapter, we investigate the cache performance and the lifetime characteristics of SPECjvm98 applications running with a Just-In-Time (JIT) compiler by analyzing memory reference traces collected by an exception-based tracing tool.

First, we find that the overall cache miss ratio can be increased due to the garbage collector, which suffers from higher cache miss ratio than the application itself. We also note that Java programs reveal good spatial locality and going beyond 2-way cache associativity improves the cache miss ratio marginally. Second, we observe that Java programs generate a substantial amount of shortlived objects. However, the size of frequently-referenced long-lived objects is more important to the cache performance, because it tends to determine the application’s working set size.

This work was done while the author was visiting the IBM T. J. Watson Research Center.

On leave from IBM T. J. Watson Research Center.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J. Gosling, B. Joy, and G. Steele, The Java Language Specification. Addison-Wesley, 1996.

    Google Scholar 

  2. J. D. Gee, M. D. Hill, D. N. Pnevmatikatos, and A. J. Smith, “Cache Performance of the SPEC92 Benchmark Suite,” IEEE Micro, pp. 17–27, Aug. 1993.

    Google Scholar 

  3. S. C. Woo et al, “The SPLASH-2 Programs: Characterization and Methodological Considerations,” in Proc. of the 22nd International Symposium on Computer Architecture, pp. 24–36, 1995.

    Google Scholar 

  4. A. M. G. Maynard, C. M. Donnelly, and B. R. Olszewski, “Contrasting Characteristics and Cache Performance of Technical and Multi-User Commercial Workloads,” in Proc. of the 6th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 145–156, 1994.

    Google Scholar 

  5. L. A. Barroso, K. Gharachorloo, and E. Bugnion, “Memory System Characterization of Commercial Workloads,” in Proc. of the 25th International Symposium on Computer Architecture, pp. 3–14,1998.

    Google Scholar 

  6. T. H. Romer, D. Lee, G. M. Voelker, A. Wolman, W. A. Wong, J.-L. Bear, B. N. Bershad, and H. M. Levy, “The Structure and Performance of Interpreters,” in ASP LOS VII, pp. 150–159, 1996.

    Google Scholar 

  7. C.-H. Hsieh, M. T. Conte, T. L. Johnson, J. C. Gyllenhall, and W. W. Hwu, “A Study of the Cache and Branch Performance Issues with Running Java on Current Hardware Platforms,” in Proc. of IEEE Compcon, pp. 211–216, 1997.

    Google Scholar 

  8. P. Tyma, “Why are we using Java again?,” Communications ACM, vol. 41, pp. 38–42, Jun. 1998.

    Article  Google Scholar 

  9. A. Srivastava and A. Eustace, “ATOM: A System for Building Customized Program Analysis Tools,” in Proc. of the SIGPLAN Conf. on Programming Language Design and Implementation, pp. 196–205, 1994.

    Google Scholar 

  10. J. R. Larus and E. Schnarr, “EEL: Machine-independent Executable Editing,” in Proc. of the SIGPLAN Conf. on Programming Language Design and Implementation, pp. 291–300, 1995.

    Google Scholar 

  11. T. Romer, G. Voelker, D. Lee, A. Wolman, W. Wong, H. Levy, B. Bershad, and B. Chen, “Instrumentation and Optimization of Win32/Intel Executables Using Etch,” in The USENIX Windows NT Workshop Proceedings, 1997.

    Google Scholar 

  12. P. Magnusson, F. Dahlgren, H. Grahn, M. Karlsson, F. Larsson, F. Lundholm, A. Moestedt, J. Nilsson, P. Stenström, and B. Werner, “SimICS/sun4m: A Virtual Workstation,” in USENIX Annual Technical Conference, 1998.

    Google Scholar 

  13. M. Rosenblum, E. Bugnion, S. Devine, and S. A. Herrod, “Using the SimOS Machine Simulator to Study Complex Computer Systems,” ACM Trans, on Modeling and Computer Simulation, vol. 7, pp. 78–103, Jan. 1997.

    Article  Google Scholar 

  14. Standard Performance Evaluation Council, “SPEC JVM98 Benchmarks.” http://www.spec.org/osg/jvm98/, 1998.

  15. IBM Corp., PowerPC 604e RISC Microprocessor User’s Manual. 1998.

    Google Scholar 

  16. IBM Corp.,A1X Version 4.3 Kernel Extensions and Device Support Programming Concepts. 1998.

    Google Scholar 

  17. J. Gecsei, D. R. Slutz, and I. L. Traiger, “Evaluation Techniques for Storage Hierarchies,” IBM Systems Journal, vol. 9, no. 2, pp. 78–117, 1970.

    Article  Google Scholar 

  18. Y. H. Kim, M. D. Hill, and D. A. Wood, “Implementing Stack Simulation for Highly-Associative Memories,” in Proc. of 1991 ACM SIGMETRICS Conf. on Measurement and Modeling of Computer Systems, pp. 212–213, 1991.

    Google Scholar 

  19. J. Edler and M. D. Hill, “Dinero IV Trace-driven Uniprocessor Cache Simulator.”http://www.neei.nj.nec.com/homepages/edler/d4,1998.

  20. S. Dasgupta and E. Servan-Schreiber, “Cache Behavior of the SPEC95 Benchmark Suite.” University of California at Berkeley, http://http.cs.berkeley.edu/~dasgupta, 1996.

  21. M. B. Reinhold, “Cache Performance of Garbage-Collected Programs,” in Proc. of the ACM SIGPLAN Conf. Programming Language Design and Implementation, pp. 206–217, 1994.

    Google Scholar 

  22. T. Lindholm and F. Yellin, The Java Virtual Machine Specification. Addison-Wesley, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer Science+Business Media New York

About this chapter

Cite this chapter

Kim, JS., Hsu, Y. (2000). Analyzing Memory Reference Traces of Java Programs. In: John, L.K., Maynard, A.M.G. (eds) Workload Characterization for Computer System Design. The Springer International Series in Engineering and Computer Science, vol 542. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-4387-9_2

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-4387-9_2

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-6973-8

  • Online ISBN: 978-1-4615-4387-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics