Implicit java array bounds checking on 64-bit architectures

Chris Bentley, Scott A. Watterson, David K. Lowenthal, Barry Rountree

Research output: Contribution to conferencePaperpeer-review

2 Scopus citations


Interest in using Java for high-performance parallel computing has increased in recent years. One obstacle that has inhibited Java from widespread acceptance in the scientific community is the language requirement that all array accesses must be checked to ensure they are within bounds. In practice, array bounds checking in scientific applications may increase execution time by more than a factor of 2. Previous research has explored optimizations to statically eliminate bounds checks, but the dynamic nature of many scientific codes makes this difficult or impossible. Our approach is instead to create a new Java implementation that does not generate explicit bounds checks. It instead places arrays inside of Index Confinement Regions (ICRs), which are large, isolated, mostly unmapped virtual memory regions. Any array reference outside of its bounds will cause a protection violation; this provides implicit bounds checking. Our results show that our new Java implementation reduces the overhead of bounds checking from an average of 63% to an average of 9% on our benchmarks.

Original languageEnglish (US)
Number of pages10
StatePublished - 2004
Event2004 International Conference on Supercomputing - Saint-Malo, France
Duration: Jun 26 2004Jul 1 2004


Other2004 International Conference on Supercomputing


  • Array-Bounds Checking
  • Java
  • Virtual Memory

ASJC Scopus subject areas

  • General Computer Science


Dive into the research topics of 'Implicit java array bounds checking on 64-bit architectures'. Together they form a unique fingerprint.

Cite this