This paper examines the design space for copying garbage collectors (GCs) i
n which "large objects" are managed in a separate, non-copy-collected space
. We focus on two main issues:
1. how to set the policy for classifying objects as "large"
2. how to manage the large object space
We explore these issues experimentally using the Oscar GC testbed. In parti
cular, we vary the threshold size of large objects and also whether the obj
ects may contain pointers. Furthermore, we compare the performance of tread
mill collection to that of mark-and-sweep collection for managing the large
object space.
We find that for some heaps there is a minimum cutoff size below which addi
ng objects to the large object space does not result in a performance impro
vement, while for others no such cutoff exists. In general, including point
er-containing objects in the large object space seems beneficial. Finally,
the exact method used to collect the large object space does not significan
tly influence overall performance.