Robin Garner | The Australian National University (original) (raw)

Papers by Robin Garner

Research paper thumbnail of A comprehensive evaluation of object scanning techniques

ACM SIGPLAN Notices, 2011

At the heart of all garbage collectors lies the process of identifying and processing reference f... more 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.

Research paper thumbnail of The design and construction of high performance garbage collectors

Garbage collection is a performance-critical component of modern language implementations. The pe... more Garbage collection is a performance-critical component of modern language implementations. The performance of a garbage collector depends in part on major algorithmic decisions, but also significantly on implementation details and techniques which are often incidental in the literature. In this dissertation I look in detail at the performance characteristics of garbage collection on modern architectures. My thesis is that a thorough understanding of the characteristics of the heap to be collected, coupled with measured performance of various design alternatives on a range of modern architectures provides insights that can be used to improve the performance of any garbage collection algorithm. The key contributions of this work are: 1) A new analysis technique (replay collection) for measuring the performance of garbage collection algorithms; 2) a novel technique for applying software prefetch to non-moving garbage collectors that achieves significant performance gains; and 3) a comp...

Research paper thumbnail of ANU-Digital Collections: The design and construction of high performance garbage collectors

Garbage collection is a performance-critical component of modern language implementations. The pe... more Garbage collection is a performance-critical component of modern language implementations. The performance of a garbage collector depends in part on major algorithmic decisions, but also significantly on implementation details and techniques which are often incidental in the literature. In this dissertation I look in detail at the performance characteristics of garbage collection on modern architectures.

Research paper thumbnail of A Comprehensive Evaluation of Object Scanning Techniques

At the heart of all garbage collectors lies the process of identifying and processing reference f... more 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.

Research paper thumbnail of A Comprehensive Evaluation of Object Scanning Techniques

At the heart of all garbage collectors lies the process of identifying and processing reference f... more 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.

Research paper thumbnail of The DaCapo Benchmarks: Java Benchmarking Development and Analysis

Proceedings of the …, Jan 1, 2006

Research paper thumbnail of Wake up and smell the coffee: evaluation methodology for the 21st century

… of the ACM, Jan 1, 2008

Research paper thumbnail of Demystifying magic: high-level low-level programming

Proceedings of the …, Jan 1, 2009

Research paper thumbnail of Effective prefetch for mark-sweep garbage collection

Proceedings of the 6th …, Jan 1, 2007

Research paper thumbnail of The DaCapo Benchmarks: Java benchmarking development and analysis (extended version)

Research paper thumbnail of JMTK: a portable memory management toolkit

Research paper thumbnail of MMTk: The Memory Management Toolkit

Research paper thumbnail of The DaCapo Benchmarks: Java Benchmarking Development and Analysis (Extended Version)∗

Research paper thumbnail of Porting the JMTk memory management toolkit

Research paper thumbnail of A comprehensive evaluation of object scanning techniques

ACM SIGPLAN Notices, 2011

At the heart of all garbage collectors lies the process of identifying and processing reference f... more 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.

Research paper thumbnail of The design and construction of high performance garbage collectors

Garbage collection is a performance-critical component of modern language implementations. The pe... more Garbage collection is a performance-critical component of modern language implementations. The performance of a garbage collector depends in part on major algorithmic decisions, but also significantly on implementation details and techniques which are often incidental in the literature. In this dissertation I look in detail at the performance characteristics of garbage collection on modern architectures. My thesis is that a thorough understanding of the characteristics of the heap to be collected, coupled with measured performance of various design alternatives on a range of modern architectures provides insights that can be used to improve the performance of any garbage collection algorithm. The key contributions of this work are: 1) A new analysis technique (replay collection) for measuring the performance of garbage collection algorithms; 2) a novel technique for applying software prefetch to non-moving garbage collectors that achieves significant performance gains; and 3) a comp...

Research paper thumbnail of ANU-Digital Collections: The design and construction of high performance garbage collectors

Garbage collection is a performance-critical component of modern language implementations. The pe... more Garbage collection is a performance-critical component of modern language implementations. The performance of a garbage collector depends in part on major algorithmic decisions, but also significantly on implementation details and techniques which are often incidental in the literature. In this dissertation I look in detail at the performance characteristics of garbage collection on modern architectures.

Research paper thumbnail of A Comprehensive Evaluation of Object Scanning Techniques

At the heart of all garbage collectors lies the process of identifying and processing reference f... more 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.

Research paper thumbnail of A Comprehensive Evaluation of Object Scanning Techniques

At the heart of all garbage collectors lies the process of identifying and processing reference f... more 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.

Research paper thumbnail of The DaCapo Benchmarks: Java Benchmarking Development and Analysis

Proceedings of the …, Jan 1, 2006

Research paper thumbnail of Wake up and smell the coffee: evaluation methodology for the 21st century

… of the ACM, Jan 1, 2008

Research paper thumbnail of Demystifying magic: high-level low-level programming

Proceedings of the …, Jan 1, 2009

Research paper thumbnail of Effective prefetch for mark-sweep garbage collection

Proceedings of the 6th …, Jan 1, 2007

Research paper thumbnail of The DaCapo Benchmarks: Java benchmarking development and analysis (extended version)

Research paper thumbnail of JMTK: a portable memory management toolkit

Research paper thumbnail of MMTk: The Memory Management Toolkit

Research paper thumbnail of The DaCapo Benchmarks: Java Benchmarking Development and Analysis (Extended Version)∗

Research paper thumbnail of Porting the JMTk memory management toolkit