Linux and GC

P T Withington ptw@pobox.com
Wed, 13 May 1998 08:14:13 -0400


A co-worker pointed out this citation:

@article
{ Rodrigues-Rivera:Russo:spe:1997
, author=   "Gustavo Rodrigues-Rivera and Vincent F. Russo"
, email=    "{grr,russo}@cs.purdue.edu"
, title=    "Nonintrusive Cloning Garbage Collection with Stock
Operating System Support"
, journal=  "Software: Practice & Experience"
, volume=   27
, number=   8
, pages=    "885--904"
, month=    aug
, year=     1997
, refs=     30
, checked=  19971109
, source=   "Computer Science Library, University of Manchester"
, keywords= "garbage collection, dynamic storage allocation,
conservative garbage collection, dynamic memory management, 
real time garbage collection"
, abstract= "It is well accepted that automatic garbage collection
simplifies programming, promotes modularity, and reduces development
effort.  However, it is commonly believed that these advantages do not
counteract the perceived price: excessive overheads, possible long
pause times while garbage collector implementations that can be used
in existing programs, they do not guarantee short pauses, and some
modification of the application using them is still required.  In this
paper we describe a snapshot-at-beginning concurrent garbage collector
algorithm and its implementation.  This algorithm guarantees short
pauses, and can be easily implemented on stock UNIX-like operating
systems.  Our results show that our collector performs comparable to
other garbage collection implementations on uniprocessor machines and
outperformas similar collectors on multiple machines.  We also show
our collector to be competitive in performance with explicit
deallocation.  Our collector has the added advantage of being
non-intrusive.  Using a dynamic linking technique and effective root
set inferencing, we have been able to successfully run our collector
even in commercial programs where only the binary executable and no
source code is available.  In this paper we describe our algorithm,
its implementation, and provide both an algorithm and a performance
comparison between our collector and other similar garbage
collectors."
}

However, he noted that in the benchmarks run in the paper, the cloning 
collector has worse runtime than Boehm-Demers-Weiser using kernel-level 
dirty bits on both uni- and multi-processors, although it does have lower 
maximum and total pause time on multi-processors.