© University of Kent - Contact | Feedback | Legal | FOI | Cookies
Collecting the garbage without blocking the traffic
Richard Jones and Andy King
Technical Report 18-04, University of Kent, Computing Laboratory, September 2004.Abstract
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
@techreport{1970, 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 = {http://www.cs.kent.ac.uk/pubs/2004/1970}, publication_type = {techreport}, submission_id = {9917_1095417270}, number = {18-04}, institution = {University of Kent, Computing Laboratory}, }