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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
J. Gosling, B. Joy, and G. Steele, The Java Language Specification. Addison-Wesley, 1996.
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.
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.
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.
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.
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.
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.
P. Tyma, “Why are we using Java again?,” Communications ACM, vol. 41, pp. 38–42, Jun. 1998.
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.
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.
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.
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.
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.
Standard Performance Evaluation Council, “SPEC JVM98 Benchmarks.” http://www.spec.org/osg/jvm98/, 1998.
IBM Corp., PowerPC 604e RISC Microprocessor User’s Manual. 1998.
IBM Corp.,A1X Version 4.3 Kernel Extensions and Device Support Programming Concepts. 1998.
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.
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.
J. Edler and M. D. Hill, “Dinero IV Trace-driven Uniprocessor Cache Simulator.”http://www.neei.nj.nec.com/homepages/edler/d4,1998.
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.
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.
T. Lindholm and F. Yellin, The Java Virtual Machine Specification. Addison-Wesley, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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