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 mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id A8374BC57 for ; Mon, 29 Nov 2010 00:34:54 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmUBAHx18kxKfVK0k2dsb2JhbACUSYFVjFUIFQEBAQEJCQoJEQMfp06LfAEFjQkBBIVH X-IronPort-AV: E=Sophos;i="4.59,273,1288566000"; d="scan'208";a="80354193" Received: from mail-wy0-f180.google.com ([74.125.82.180]) by mail4-smtp-sop.national.inria.fr with ESMTP; 29 Nov 2010 00:34:54 +0100 Received: by wye20 with SMTP id 20so2915366wye.39 for ; Sun, 28 Nov 2010 15:34:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:references :in-reply-to:subject:date:organization:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:thread-index :content-language; bh=js0KNqeSGKa1ydtBGTL37fsKqLWKMnygNXpigvLBFx0=; b=HlmYMsXa5HfNyVRp0x7lnx5cESBujyDWNa2E9p+x5nr6EeK1Pc/EsW2BvwTC8Eu/gY wb+o1K+75Wn/vmfxRdJ2ujwRyqKhxVQ1h8MkBK8YaRrbe2KQpWyCROLUxBs8FktGIAyj WhavkaPtDdgn6CQ8krCax9sVNgRmBk+jWmHFo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:references:in-reply-to:subject:date:organization:message-id :mime-version:content-type:content-transfer-encoding:x-mailer :thread-index:content-language; b=azSrW8hGWSRlI+VzNtzok3UdDEBA56rIgDuGEq8YrbYVUYA687VDLcABTZuEjuHfSZ wqXZVAUfmeEqTNpr8boNfPd/KK8g1Kfb40DTofCrB+8X4fs3EUuMEpyXVe4CZACE8yk/ t2Cat4SCTc1uEvmOoNRu0V54Vwr4fiZaO9boY= Received: by 10.227.137.17 with SMTP id u17mr5092731wbt.129.1290987292112; Sun, 28 Nov 2010 15:34:52 -0800 (PST) Received: from WinEight ([87.113.160.118]) by mx.google.com with ESMTPS id p4sm2102781wer.29.2010.11.28.15.34.50 (version=SSLv3 cipher=RC4-MD5); Sun, 28 Nov 2010 15:34:51 -0800 (PST) From: Jon Harrop To: "'Benedikt Meurer'" , 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> <08df01cb8f34$299d5800$7cd80800$@com> <208D27C6-A2CD-4383-8667-F4988301D265@googlemail.com> In-Reply-To: <208D27C6-A2CD-4383-8667-F4988301D265@googlemail.com> Subject: RE: [Caml-list] OCaml GC [was Is OCaml fast?] Date: Sun, 28 Nov 2010 23:34:40 -0000 Organization: Flying Frog Consultancy Message-ID: <08ef01cb8f54$d4bf1af0$7e3d50d0$@com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AcuPNuTPSrzHfdNtTHueWQAXc+4LOgAGcNQg Content-Language: en-gb X-Spam: no; 0.00; ocaml:01 ocaml:01 cheers:01 locality:01 beginner's:01 bug:01 bounces:98 28,:98 pathological:98 incremental:01 beginners:01 wrote:01 avoids:01 caml-list:01 caml-list:01 I see. Yes, that sounds like a great idea. How well does Immix cope with high allocation rates of short-lived objects? Been a while since I read the Immix paper... Cheers, Jon. > -----Original Message----- > From: caml-list-bounces@yquem.inria.fr [mailto:caml-list- > bounces@yquem.inria.fr] On Behalf Of Benedikt Meurer > Sent: 28 November 2010 20:00 > To: caml-list@yquem.inria.fr > Subject: Re: [Caml-list] OCaml GC [was Is OCaml fast?] > > > On Nov 28, 2010, at 20:40 , Jon Harrop wrote: > > > I don't understand why this would help here though. Wouldn't that > help when a long-lived structure was single large block but, in this > case, the long-lived structure is a tree composed of many small heap- > allocated blocks and, therefore, they would undergo the same wasteful > "allocate in young only to be copied to old" pathological behaviour? > > There is no "young" and no "old" in this scheme. There are two > different heaps, one for large objects, one for small (probably 2-8k > max object size, so not really small in the sense of OCaml). The small > area is managed by Immix, which avoids copying of long-lived objects if > they are allocated together with other long-lived objects (likely), or > if not evacuates a set of probably related objects to a single chunk > (this is somewhat dependent on the evacuation strategy, which will be > differnt for OCaml compared to Java), further improving locality. There > are simple heuristics to ensure that an object is not evacuated too > often (it is already unlikely with the base algorithm), so there will > be a lot less copying. One difficulty remains however: the pause times. > It would probably be necessary to adopt Immix to a (semi-)incremental > style to get the same pause times as with the current GC. > > Benedikt > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs