Re: Garbage Collection project (GSOC 2013)

Matthew Fluet <[email protected]> Thu, 2 May 2013 21:45:48 -0400
Newsgroups gmane.comp.lang.ml.mlton.devel
Message-ID <CAMrhFL74Lw43POzQU5j3kM-sRJLcXR4bkA6=OMdZpKFr5WOvEA@mail.gmail.com>
On Thu, May 2, 2013 at 3:39 PM, Gao Han <[email protected]> wrote:
>
> My name is Gao, a CS sophomore from SUNY Buffalo. I am interested in the
> Garbage Collection (GC) project offered by MLton. A copy of my proposal is
> attached with this email. I would greatly appreciate your comments and
> suggestions.

GC Improvements is certainly a broad topic, and I'm glad to see a
proposal with a particular focus.  I'm not familiar with the Brecht
et. al paper, but I'll raise the standard concern that Java programs
might well have different allocation/retention/GC/heap characteristics
than SML programs.  But, it seems like a worthy experiment.

Some misc. comments:
* It would be good to work out a design such that the threshold
approach can coexist with the existing approach(es) to heap sizing.
* You may need to consider other benchmark programs; most of the
proposed benchmarks aren't GC-bound.
* Does the Brecht et. al approach compute threshholds once at program
start or repeatedly during execution?  That is, how and when is
AvailMemory determined?
* The statement "For major GC, it will be performed when old-space is
larger than a certain ratio compared to the available physical
memory." isn't quite right.  A major GC is triggered when the old
generation occupies the entire heap.  When the major GC is a copying
GC a second heap is allocated as the to-space.  If that second heap
cannot be allocated (or certain ratios are exceeded), then the major
GC is a mark-compact GC with the existing heap.  In any case, the
ratio compared to available physical memory only comes into play when
determining what size to grow the heap to after a major GC is
completed (and the current live data size is known).

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2