Meaningful Object Lifetime Measurement for Multithreaded Applications
Gharaibeh, Bashar and Chang, J. Morris (2009) Meaningful Object Lifetime Measurement for Multithreaded Applications. Publisher UNSPECIFIED.
Full text available as:
Object-oriented languages that rely on automatic dynamic memory management (i.e. Garbage Collection) are gaining popularity. More and more applications are developed using such languages. However, the performance of memory management for such applications depends on how these applications allocate and use objects. Researchers have relied on information about object lifetime, allocation sites and object sizes to understand the performance of garbage collection and to design better collection schemes. This set of information, also referred to as Object demographics, are crucial for memory management research. However, little effort has been made to investigate schemes to obtain demographics information. The lack of demographics studies especially affects multi-threaded applications. Current schemes for tracing object lifetimes does not take into consideration the complexities associated with multi-threaded applications. With the increased interest in multi-threaded applications, the research community is in need for a thread-specific view on object demographics. Traditionally, lifetime is expressed by how many allocations were made between the object birth and death. For multi-threaded applications, the lifetime is equal to the amount of allocations made by the allocat- ing thread and any other running threads. Therefor, lifetime results are inflated by allocations from other threads and can vary with different thread scheduling scenarios. We propose a new measurement methodology that uses a vector clock of allocation. our scheme is capable of detecting needed allocations for calculating lifetime and neglect those that are a result of thread scheduling. In addition to accuracy, the use of vector clock allows us to observe dependencies between allocation events. The new methodology is compared to the conventional measurement methodology showing that the conventional method inflates object’s lifetime by up to 13% for some benchmarks. In addition, using the proposed measurement method, we investigate objects demographics while showing per-thread behavior. We also show an example of using per-thread VC to understand minor collection cost.
Archive Staff Only: edit this record