From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 7924ABC57 for ; Sun, 28 Nov 2010 19:57:25 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AooDABc08kzRVdU0k2dsb2JhbACUVzKFdwGHNkoIFQEBAQEJCQoJEQMfpyWJZIIYhAouiFYBAQMFhUIEimE X-IronPort-AV: E=Sophos;i="4.59,271,1288566000"; d="scan'208";a="81117525" Received: from mail-yw0-f52.google.com ([209.85.213.52]) by mail2-smtp-roc.national.inria.fr with ESMTP; 28 Nov 2010 19:57:24 +0100 Received: by ywf9 with SMTP id 9so1640975ywf.39 for ; Sun, 28 Nov 2010 10:57:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=YI+aECDOTcJGoop06n0eqhpL2PgPvsEVbBnksfTaNJE=; b=mfeRnVbdco6ZqSI0nP8Epq2VnoZyNHzT8Prbi0WrSqEmkpPwr2NbJ8cdPi/3bJNGnD urL6JZcMpyT5MnoAHIPPyVcCjxZ4FiDn7rs2/ZgkVdA+NNUx7iobPiYm0wsFvMx66H6m 63EKuQ+5xQ1tkCtuiDmg7rP4Lm7PDoOdDxLpE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=JXRvpAk6Ac2fXi+FOIecvoO4+H41oQznvq2yd+M+TX1oZYkHjs/qP0jLZHUmAwlnOt cFzXBM0gw9EGA0yNTQxTqwdlDFshu0TXoevUObi6qlUGXKfjE/4Wmvi6I8FcbFfzCLK9 9K2kD1n9HIb6F4QbFnOp0IKU7w5tjT7AX/t9g= MIME-Version: 1.0 Received: by 10.90.1.34 with SMTP id 34mr7822997aga.59.1290970635963; Sun, 28 Nov 2010 10:57:15 -0800 (PST) Received: by 10.91.154.3 with HTTP; Sun, 28 Nov 2010 10:57:15 -0800 (PST) In-Reply-To: References: <1290434674.16005.354.camel@thinkpad> <582306206.731582.1290438133628.JavaMail.root@zmbs4.inria.fr> <20101122203334.7adc5ee6@deb0> <20101127221121.0920db65@ordinaves.concept-micro.com> <4CF25878.4060202@univ-savoie.fr> Date: Sun, 28 Nov 2010 20:57:15 +0200 Message-ID: Subject: Re: [Caml-list] OCaml GC [was Is OCaml fast?] From: Eray Ozkural To: Benedikt Meurer Cc: caml-list@yquem.inria.fr Content-Type: multipart/alternative; boundary=00163630fff32c0d7304962186f6 X-Spam: no; 0.00; ocaml:01 ocaml:01 eray:01 ozkural:01 generational:01 generations:01 locality:01 doable:01 vars:01 eray:01 ozkural:01 bilkent:01 generational:01 generations:01 locality:01 --00163630fff32c0d7304962186f6 Content-Type: text/plain; charset=ISO-8859-1 On Sun, Nov 28, 2010 at 4:29 PM, Benedikt Meurer < benedikt.meurer@googlemail.com> wrote: > Speaking of the OCaml GC in general, wouldn't it make sense to replace the > current generational collector with a collector framework that requires less > copying in the common case. For example, dividing the heap into two parts, > "large object space" and "small object space", where LOS is managed by > mark-sweep/mark-compact (could use the current major heap) and SOS is > managed by a recent mark-copy/mark-region collector (Immix [1] comes to mind > here). That way objects would no longer need to be copied between > generations, and using Immix may also reduce cache misses and improve > locality of small/medium sized objects (with proper evacuation heuristics). > This should be doable with a moderate amount of work, and should require no > incompatible changes, while opening the door for concurrent/parallel garbage > collection (this would require incompatible changes then, replacing > caml_young_ptr/caml_young_limit with TLS vars, etc.). > > Benedikt > > [1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.144.3640 > I was suggesting dealing with small fixed-size objects differently in another post. This doesn't sound like a bad combination, nice idea :) Best, -- Eray Ozkural, PhD candidate. Comp. Sci. Dept., Bilkent University, Ankara http://groups.yahoo.com/group/ai-philosophy http://myspace.com/arizanesil http://myspace.com/malfunct --00163630fff32c0d7304962186f6 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On Sun, Nov 28, 2010 at 4:29 PM, Benedikt Meurer= <be= nedikt.meurer@googlemail.com> wrote:
Speaking of the OCaml GC in general, wouldn't it make sense to replace = the current generational collector with a collector framework that requires= less copying in the common case. For example, dividing the heap into two p= arts, "large object space" and "small object space", wh= ere LOS is managed by mark-sweep/mark-compact (could use the current major = heap) and SOS is managed by a recent mark-copy/mark-region collector (Immix= [1] comes to mind here). That way objects would no longer need to be copie= d between generations, and using Immix may also reduce cache misses and imp= rove locality of small/medium sized objects (with proper evacuation heurist= ics). This should be doable with a moderate amount of work, and should requ= ire no incompatible changes, while opening the door for concurrent/parallel= garbage collection (this would require incompatible changes then, replacin= g caml_young_ptr/caml_young_limit with TLS vars, etc.).

Benedikt

[1] http://citeseerx.ist.psu.edu/viewdoc/summary?doi= =3D10.1.1.144.3640

I was suggesting dealing wi= th small fixed-size objects differently in another post. This doesn't s= ound like a bad combination, nice idea :)
=A0
Best,

--
Eray Ozkural, PhD candidate.=A0 Comp= . Sci. Dept., Bilkent University, Ankara
http://groups.yahoo.com/group/ai-philosophyhttp://myspace.com/arizanesil http://myspace.com/malfunct
--00163630fff32c0d7304962186f6--