[m-dev.] [Gc] Article about memory fragmentation

Bruce Hoult bruce at hoult.org
Mon Oct 10 11:07:15 AEDT 2016


On Mon, Oct 10, 2016 at 12:40 PM, Paul Bone <paul at bone.id.au> wrote:

> On Sat, Oct 08, 2016 at 10:32:33PM +1100, Paul Bone wrote:
> >
> > I investigated an issue with memory fragmentation in BDW GC and Mercury
> and
> > it proved to be quite interesting, so I wrote it up as a blog post.
> >
>
> I received some feedback via twitter regarding the Memory Pool System
> (MPS),
> another GC for uncooperative environments.
>
> https://twitter.com/glaebhoerl/status/784737682706538496
>
> IIRC we've tried this in the past and found that it didn't perform as well
> as BDWGC.  But I wasn't involved with Mercury at the time and things may
> have changed.  @glaebhoerl provided this link
> https://gitlab.com/embeddable-common-lisp/ecl/issues/126 suggesting that
> it
> might be worth a look as ti may perform better.  I know very little about
> MPS so there's not much I can say about this.  But I said I'd pass the
> information on to the other Mercury devs.
>
>
The Dylan programming language has had several implementations, using a
variety of GCs:

Gwydion Dylan, originally at CMU on HP/UX, subsequently on probably every
popular Unix-like, has always used BDWGC.

Open Dylan, nee Functional Developer, nee Harlequin Dylan was developed at
Harlequin, who also developed the Memory Pool System. Open Dylan started on
Windows as a native compiler, and has been ported to 32 bit x86 Linux, also
as a native compiler. These versions use MPS. It has also been ported to
other platforms/CPUs and to 64 bit using a C back end. This uses BDWGC.

MPS was said to have 30 man-years of development work in it at the point
that Harlequin spun it off. The overall Dylan enviroment was over 100 man
years. (MPS was also used in Harlequin's ML and Lisp products, and maybe
others)

There is no doubt that MPS is very flexible, and can use a variety of
different allocation and collection techniques, both precise and
conservative.

I don't recall MPS benchmarking any better than BDWGC with Open Dylan.
Maybe the memory use is lower, but I'm not sure about that. There's
probably some data in the Dylan newsgroup or mailing list somewhere, but
it's a few years now since I've been actively involved.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurylang.org/archives/developers/attachments/20161010/379ae073/attachment.html>


More information about the developers mailing list