• Home
  • Search
  • Characterizing the memory behavior of Java workloads
  • Cite Icon97
  • https://doi.org/10.1145/378420.378783Copy DOI Icon

Characterizing the memory behavior of Java workloads

  • Jun 1, 2001
  • Yefim Shuf +3 more
Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

This paper studies the memory behavior of important Java workloads used in benchmarking Java Virtual Machines (JVMs), based on instrumentation of both application and library code in a state-of-the-art JVM, and provides structured information about these workloads to help guide systems' design. We begin by characterizing the inherent memory behavior of the benchmarks, such as information on the breakup of heap accesses among different categories and on the hotness of references to fields and methods. We then provide detailed information about misses in the data TLB and caches, including the distribution of misses over different kinds of accesses and over different methods. In the process, we make interesting discoveries about TLB behavior and limitations of data prefetching schemes discussed in the literature in dealing with pointer-intensive Java codes. Throughout this paper, we develop a set of recommendations to computer architects and compiler writers on how to optimize computer systems and system software to run Java programs more efficiently. This paper also makes the first attempt to compare the characteristics of SPECjvm98 to those of a server-oriented benchmark, pBOB, and explain why the current set of SPECjvm98 benchmarks may not be adequate for a comprehensive and objective evaluation of JVMs and just-in-time (JIT) compilers.We discover that the fraction of accesses to array elements is quite significant, demonstrate that the number of hot spots in the benchmarks is small, and show that field reordering cannot yield significant performance gains. We also show that even a fairly large L2 data cache is not effective for many Java benchmarks. We observe that instructions used to prefetch data into the L2 data cache are often squashed because of high TLB miss rates and because the TLB does not usually have the translation information needed to prefetch the data into the L2 data cache. We also find that co-allocation of frequently used method tables can reduce the number of TLB misses and lower the cost of accessing type information block entries in virtual method calls and runtime type checking.

Similar Papers
  • Research Article
  • Citations10

Characterizing the memory behavior of Java workloads

  • Jun 01, 2001
  • ACM SIGMETRICS Performance Evaluation Review
  • Yefim Shuf +3
  • Conference Article

A Locality-Aware, Energy-Efficient Cache Design for Large-Scale Multi-Core Systems

  • Jul 01, 2018
  • Abdulrahman Alshegaifi +1
  • Conference Article

Investigating execution-characteristics of feature-detection algorithms

  • Sep 01, 2017
  • Jakob Danielsson +3
  • Conference Article
  • Citations5

L1 data cache decomposition for energy efficiency

  • Nov 13, 2002
  • Michael Huang +3
  • Research Article
  • Citations78

Java runtime systems: characterization and architectural implications

  • Jan 01, 2001
  • IEEE Transactions on Computers
  • R Radhakrishnan +5
  • Conference Article
  • Citations8

Impact of virtual execution environments on processor energy consumption and hardware adaptation

  • Jun 14, 2006
  • Shiwen Hu +1
  • Conference Article
  • Citations4

Improving data access efficiency by using a tagless access buffer (TAB)

  • Feb 01, 2013
  • A Bardizbanyan +6
  • Research Article
  • Citations11

Enabling energy efficient reliability in embedded systems through smart cache cleaning

  • Oct 01, 2013
  • ACM Transactions on Design Automation of Electronic Systems
  • Reiley Jeyapaul +1
  • Conference Article
  • Citations2

Unified vs. split TLBs and caches in shared-memory MP systems

  • Apr 25, 1995
  • Qidong Xu +1
  • Research Article
  • Citations50

Cache-Efficient Multigrid Algorithms

  • Feb 01, 2004
  • The International Journal of High Performance Computing Applications
  • Sriram Sellappa +1
  • Conference Article
  • Citations14

SIMD intrinsics on managed language runtimes

  • Feb 24, 2018
  • Alen Stojanov +3
  • Conference Article
  • Citations3

Impact of JVM superoperators on energy consumption in resource-constrained embedded systems

  • Jun 12, 2008
  • Carmen Badea +2
  • Conference Article
  • Citations2

Just-In-Time Java? Compilation for the Itanium® Processor

  • Sep 22, 2002
  • Tatiana Shpeisman +2
  • Research Article
  • Citations8

AOT vs. JIT: impact of profile data on code quality

  • Jun 21, 2017
  • ACM SIGPLAN Notices
  • April W Wade +2
  • Conference Article
  • Citations145

A dynamic optimization framework for a Java just-in-time compiler

  • Oct 01, 2001
  • Toshio Suganuma +4
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.