1 / 24

Comparison of JVM Phases on Data Cache Performance

This workshop presents a comparative study of the requirements and characteristics of different phases in the Java Virtual Machine (JVM) and their impact on data cache performance. The study explores various cache metrics, such as cache size, set associativity, and block size, and examines the behavior of the cache under different miss types. The results highlight the effectiveness of different cache configurations on JIT compilation and garbage collection phases, as well as the time-varying behavior of the cache during JVM activities.

carvalho
Download Presentation

Comparison of JVM Phases on Data Cache Performance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Comparison of JVM Phases on Data Cache Performance Shiwen Hu and Lizy K. John Laboratory for Computer Architecture The University of Texas at Austin

  2. Motivation • Execution of Java programs consists of distinct JVM phases • JIT compilation • Garbage collection • Execution • Efficient execution of Java programs necessitates a comparative study of requirements and characteristics of JVM phases The First Workshop on Managed Run Time Workloads

  3. Outline • Experimental methodology • Varying cache metrics • Cache size, set associativity, block size • Decomposition by miss types • Time varying cache behavior • Conclusion The First Workshop on Managed Run Time Workloads

  4. Methodology • LaTTe JVM: • An open-source, state-of-the-art JVM • Memory management of LaTTe JIT compiler • Reusable initial stack – 50KB • Allocate dynamic stacks when necessary – recyclable • Heap Management • Large object area: indexed by a hash table • Small object area: heads indicating object sizes The First Workshop on Managed Run Time Workloads

  5. Methodology (Cont.) • Experimental workloads: SPECjvm 98 benchmarks • Using s10 data set • Cache simulator: • Based on Cachesim5 from Sun’s Shade V6 tool suite • A JVM phase aware cache simulator • Default configuration: • 64KB, 32B blocks, 4-way set associative The First Workshop on Managed Run Time Workloads

  6. Breakdown of JVM phases • JIT compilation and execution phases dominate • In terms of instruction counts, data references, and data misses • Garbage collector has the highest miss rates • Large working set (heap) and pointer-chasings • But, rarely affects overall cache performance The First Workshop on Managed Run Time Workloads

  7. Breakdown of JVM phases (Cont.) The First Workshop on Managed Run Time Workloads

  8. Varying cache size • Increasing cache size is more effective on JIT compilation than on garbage collection • Larger working set of garbage collector • Pointer chasing access pattern of garbage collector • Stacks of most JIT compilations can be held in 128K cache • Varying effect on execution phase • More effective on mpegaudio than on db The First Workshop on Managed Run Time Workloads

  9. Varying cache size (Cont.) The First Workshop on Managed Run Time Workloads

  10. Varying set associativity • Increasing set associativity rarely affects JIT compilation and garbage collection • Negligible conflict misses due to uniform accesses to heap or stacks • Dominated by capacity misses • Short lives of JIT objects • Varying effectiveness on execution phase • mtrt: 52% misses eliminated • db and javac: 13% misses eliminated The First Workshop on Managed Run Time Workloads

  11. Varying set associativity (Cont.) The First Workshop on Managed Run Time Workloads

  12. Varying block size • Effective on JIT compilation and garbage collection • JIT compilation: good spatial locality due to stack initialization • Garbage collection: good spatial locality during sweep phase • Varying effectiveness on execution phase • Larger block: db,jess, mpegaudio, and mtrt • Smaller block: compress, jack, javac The First Workshop on Managed Run Time Workloads

  13. Varying block size (Cont.) The First Workshop on Managed Run Time Workloads

  14. Decomposition by miss types - JIT • Capacity misses dominate • Less compulsory misses • Reusable initial stack • Overlapped dynamic stacks • Negligible conflict misses • Splitting cache rarely affects miss type composition The First Workshop on Managed Run Time Workloads

  15. Decomposition by miss types - GC • Fewest compulsory misses in unified cache • Cache blocks accessed during execution phase • More compulsory misses in split cache • Uniform heap sweeping The First Workshop on Managed Run Time Workloads

  16. Decomposition by miss types - EXEC • Relatively more compulsory misses • Heap objects allocation and initialization • Variety reveals program characteristics • Splitting cache rarely affects miss type composition The First Workshop on Managed Run Time Workloads

  17. Time varying behavior • Importance of separating JVM activities from application activities • Java programs execute on JVMs, differing with C/C++ programs • Correlating performance results with JVM or application characteristics is important to design better JVMs The First Workshop on Managed Run Time Workloads

  18. Time varying behavior (Cont.) • JVM specific operations dominate the startup and end of application execution • Class loadings, method compilations • Few garbage collections • Corresponding to burst of cache misses • Four passes of JIT compilation correspond to four bursts of cache misses The First Workshop on Managed Run Time Workloads

  19. Time varying behavior - compress • Less GC and JIT activities • Cyclic behavior • Two phases during execution The First Workshop on Managed Run Time Workloads

  20. Time varying behavior - mtrt • More GC and JIT activities • No cyclic behavior The First Workshop on Managed Run Time Workloads

  21. Time varying behavior - startup • Identical behavior during startup • First 110 million instructions • Sharing of harness classes among SPECjvm 98 benchmarks prolongs the duration The First Workshop on Managed Run Time Workloads

  22. Conclusion • Comparative study of cache performance of distinct JVM phases • Deterministic characteristics of cache behavior • JIT compilation: traversing intermediate data structures • Garbage collection: large working set and pointer chasings The First Workshop on Managed Run Time Workloads

  23. Conclusion (Cont.) • Near identical cache performance of JIT compilation among applications • Varying cache behavior during execution phase reveal characteristics of applications The First Workshop on Managed Run Time Workloads

  24. Thanks

More Related