TY - GEN
T1 - A comprehensive evaluation of object scanning techniques
AU - Garner, Robin J.
AU - Blackburn, Stephen M.
AU - Frampton, Daniel
PY - 2011
Y1 - 2011
N2 - At the heart of all garbage collectors lies the process of identifying and processing reference fields within an object. Despite its key role, and evidence of many different implementation approaches, to our knowledge no comprehensive quantitative study of this design space exists. The lack of such a study means that implementers must rely on 'conventional wisdom', hearsay, and their own costly analysis. Starting with mechanisms described in the literature and a variety of permutations of these, we explore the impact of a number of dimensions including: a) the choice of data structure, b) levels of indirection from object to metadata, and c) specialization of scanning code. We perform a comprehensive examination of these tradeoffs on four different architectures using eighteen benchmarks and hardware performance counters. We inform the choice of mechanism with a detailed study of heap composition and object structure as seen by the garbage collector on these benchmarks. Our results show that choice of scanning mechanism is important. We find that a careful choice of scanning mechanism alone can improve garbage collection performance by 16% and total time by 2.5%, on average, over a well tuned baseline. We observe substantial variation in performance among architectures, and find that some mechanisms - particularly specialization, layout of reference fields in objects, and encoding metadata in object headers - yield consistent, significant advantages.
AB - At the heart of all garbage collectors lies the process of identifying and processing reference fields within an object. Despite its key role, and evidence of many different implementation approaches, to our knowledge no comprehensive quantitative study of this design space exists. The lack of such a study means that implementers must rely on 'conventional wisdom', hearsay, and their own costly analysis. Starting with mechanisms described in the literature and a variety of permutations of these, we explore the impact of a number of dimensions including: a) the choice of data structure, b) levels of indirection from object to metadata, and c) specialization of scanning code. We perform a comprehensive examination of these tradeoffs on four different architectures using eighteen benchmarks and hardware performance counters. We inform the choice of mechanism with a detailed study of heap composition and object structure as seen by the garbage collector on these benchmarks. Our results show that choice of scanning mechanism is important. We find that a careful choice of scanning mechanism alone can improve garbage collection performance by 16% and total time by 2.5%, on average, over a well tuned baseline. We observe substantial variation in performance among architectures, and find that some mechanisms - particularly specialization, layout of reference fields in objects, and encoding metadata in object headers - yield consistent, significant advantages.
KW - java
KW - mark-sweep
UR - http://www.scopus.com/inward/record.url?scp=79959899002&partnerID=8YFLogxK
U2 - 10.1145/1993478.1993484
DO - 10.1145/1993478.1993484
M3 - Conference contribution
SN - 9781450302630
T3 - International Symposium on Memory Management, ISMM
SP - 33
EP - 42
BT - Proceedings of the International Symposium on Memory Management, ISMM 2011
T2 - 2011 International Symposium on Memory Management, ISMM 2011, Held as Part of Federated Computing Research Conference, FCRC
Y2 - 4 June 2011 through 8 June 2011
ER -