Thread-local heaps for Java

  • Authors:
  • Tamar Domani;Gal Goldshtein;Elliot K. Kolodner;Ethan Lewis;Erez Petrank;Dafna Sheinwald

  • Affiliations:
  • Technion -- Israel Institute of Technology;Technion -- Israel Institute of Technology;Technion -- Israel Institute of Technology;Technion -- Israel Institute of Technology;Technion -- Israel Institute of Technology;Technion -- Israel Institute of Technology

  • Venue:
  • Proceedings of the 3rd international symposium on Memory management
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a memory management scheme for Java based on thread-local heaps. Assuming most objects are created and used by a single thread, it is desirable to free the memory manager from redundant synchronization for thread-local objects. Therefore, in our scheme each thread receives a partition of the heap in which it allocates its objects and in which it does local garbage collection without synchronization with other threads. We dynamically monitor to determine which objects are local and which are global. Furthermore, we suggest using profiling to identify allocation sites that almost exclusively allocate global objects, and allocate objects at these sites directly in a global area.We have implemented the thread-local heap memory manager and a preliminary mechanism for direct global allocation on an IBM prototype of JDK 1.3.0 for Windows. Our measurements of thread-local heaps with direct global allocation on a 4-way multiprocessor IBM Netfinity server show that the overall garbage collection times have been substantially reduced, and that most long pauses have been eliminated.