Memory system behavior of Java programs: methodology and analysis

  • Authors:
  • Jin-Soo Kim;Yarsun Hsu

  • Affiliations:
  • Electronics and Telecommunications Research Institute (ETRI), Taejon 305-350, Korea;Dept. of Electrical Engineering, National Tsing Hua University, Hsinchu, Taiwan

  • Venue:
  • Proceedings of the 2000 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper studies the memory system behavior of Java programs by analyzing memory reference traces of several SPECjvm98 applications running with a Just-In-Time (JIT) compiler. Trace information is collected by an exception-based tracing tool called JTRACE, without any instrumentation to the Java programs or the JIT compiler.First, we find that the overall cache miss ratio is increased due to garbage collection, which suffers from higher cache misses compared to the application. We also note that going beyond 2-way cache associativity improves the cache miss ratio marginally. Second, we observe that Java programs generate a substantial amount of short-lived 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. Finally, we note that the default heap configuration which starts from a small initial heap size is very inefficient since it invokes a garbage collector frequently. Although the direct costs of garbage collection decrease as we increase the available heap size, there exists an optimal heap size which minimizes the total execution time due to the interaction with the virtual memory performance.