School of Computing

Collecting the garbage without blocking the traffic

Richard Jones and Andy King

Technical Report 18-04, University of Kent, Computing Laboratory, September 2004.


Java is an increasingly common platform for server-side applications. Such applications are usually long-running, heavily multi-threaded, require very large heaps, executed on multiprocessors, load classes dynamically and make stringent demands of garbage collector performance. Synchronisation of all application threads in order to perform a collection is shown to be a significant bottleneck but current methods fail to solve this issue.

We show how a combination of a new static analysis and novel garbage collector framework can address this issue by allowing independent collection of thread-local heaps. In contrast to previous work, our analysis can classify objects even in the presence of incomplete knowledge; our system is safe in the presence of dynamic class loading; it requires neither synchronisation for nor locks during thread-local collections; and it does not use a write-barrier that may do an unbounded work. Finally, our analysis is sufficiently fast to permit its integration into a high-performance, production-quality virtual machine.

Download publication 470 kbytes (PostScript)

Bibtex Record

author = {Richard Jones and Andy King},
title = {Collecting The Garbage Without Blocking The Traffic},
month = {September},
year = {2004},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    publication_type = {techreport},
    submission_id = {9917_1095417270},
    number = {18-04},
    institution = {University of Kent, Computing Laboratory},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014