harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiao-Feng Li (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-1428) [DRLVM] first batch of files for GCv5, a trace-forward copying collector
Date Fri, 06 Oct 2006 12:56:21 GMT
     [ http://issues.apache.org/jira/browse/HARMONY-1428?page=all ]

Xiao-Feng Li updated HARMONY-1428:

    Attachment: gcv5-r0.10.zip

Attached file gcv5-r0.10.zip is first version of the generational mark-compaction GC for GCv5,
which combines previous two submitted collectors as planned. That is, a trace-forward collector
for minor collection and a mark-compaction collector for major collection. An additon of a
copying algorithm is also developed that copies nursery live objects to mature space during
a major collection. 

This revision has subtantial improvement in threading part. Although it's still single threaded
collector, the framework for multithreading is ready. Basically, it has mutators and collectors
to model the application threads and collection threads. 

A major design concept in this revision that was not made very clear in previous submissions
is "space".  "GC" is a concept of a full (or standalone) garbage collector design. One GC
can have multiple spaces, each of which can employ different "collection policy". With this
design idea in mind, the previous trace-forward GC is adapted to be the collection policy
for the nursery space, and the mark-compaction GC is adapted to be the collection policy of
the mature space. 

As an embodiment of the design idea, GCv5 eliminates the global gc variable in existing Harmony
GC, and different space managements only need to know a general gc data structure, instead
of the generational gc structure.

This revision has been tested on Windows with SPECJVM98. As the first actual generational
GC, any comments are welcome!


> [DRLVM] first batch of files for GCv5, a trace-forward copying collector
> ------------------------------------------------------------------------
>                 Key: HARMONY-1428
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1428
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: These files were only tested on Windows with VS.NET 2003.  
>            Reporter: Xiao-Feng Li
>         Assigned To: weldon washburn
>         Attachments: gc_v5.001.zip, GCv5-mc001.zip, gcv5-r0.10.zip
> This archive has a couple of files implementing an early version of a trace-forward copying
collector for GCv5. It's only a starter with very basic functionalities. It is a generational
GC reqiures write barrier implemented in JIT. It was tested with JET, and ran SPECJBB2000
and SPECJVM98.
> The algorithm is depth-first tracing of From-space, and forwarding live objects to To-space
(It can forward part of the From-space). The To-space has no real management except for the
accomodation of forwarded objects and large objects. So the To-space is going to be replaced
by a mark-compaction GC, and the large objects will be managed by a LOS GC. 
> In order to minimize the changes to other components of DRLVM, the codes here comply
with the original contract between GCv4 and other components. I also borrowed some routine
code from GCv4 to avoid repetitive labor work.
> GCv5 is under active development, so please expect quick and big changes to this submitted
code base. I will submit new codes from time to time when they are worth a submission. Any
comments or codes are more than welcome. 

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message