Thread-local heaps for Java
Thread-local heaps for Java
复制标题
Java 的线程本地堆
DOI:
10.1145/512429.512439
复制
发表时间:
2002
期刊:
影响因子:
--
通讯作者:
D. Sheinwald
中科院分区:
文献类型:
--
作者:
T. Domani;Gal Goldshtein;E. K. Kolodner;E. Lewis;E. Petrank;D. Sheinwald
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.