From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id CA306BC68 for ; Fri, 27 Oct 2006 15:17:05 +0200 (CEST) Received: from janestcapital.com (www.janestcapital.com [66.155.124.107]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k9RDH4HD021049 for ; Fri, 27 Oct 2006 15:17:05 +0200 Received: from [192.168.250.117] [209.213.205.130] by janestcapital.com with ESMTP (SMTPD32-8.13) id A6CF2EC300A2; Fri, 27 Oct 2006 09:17:03 -0400 Message-ID: <454206CF.1080306@janestcapital.com> Date: Fri, 27 Oct 2006 09:17:03 -0400 From: Brian Hurt User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Hendrik Tews Cc: caml-list@inria.fr Subject: Re: [Caml-list] caml_oldify_local_roots takes 50% of the total runtime References: <17727.34685.561877.977822@tandem.cs.ru.nl> <1161802911.12050.5.camel@rosella.wigram> <1161870528.20369.27.camel@localhost.localdomain> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 454206D0.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; oldify:01 runtime:01 hendrik:01 tews:01 gerd:01 stolpmann:01 pointers:01 pointer:01 hendrik:01 beginner's:01 ocaml:01 bug:01 generations:01 timings:01 heap:01 Hendrik Tews wrote: >Gerd Stolpmann writes: > > Global roots are for pointers that are outside the heap for a long time. > I think these could be handled more efficiently by the GC, e.g. by > moving global roots to a second list when the object referenced by the > pointer is moved to the major heap. > >I destilled this thread into two feature wishs: 4145, 4146. > >Hendrik > >_______________________________________________ >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 > > > > With respect to 4146 (minor heap size adjusts to memory size)- I'm not sure this is a good idea. 32K is small enough to fit into L1 cache with space left over on pretty much all systems these days (64K L1 cache seems to be standard). Having the minor heap small enough to fit into L1 cache, and thus having the minor heap live in L1 cache, seems to me to be a big advantage. If for no other reason than it makes minor collections a lot faster- the collector doesn't have to fault memory into cache, it's already there. If anything, I'd be inclined to add more generations. I haven't done any timings, but my first guess for reasonable values would be: Gen1 (youngest): 32K (fits into L1 cache), Gen2: 256K (fits into L2 cache), Gen3: 8M (fits into memory), Gen4 (oldest): as large as necessary. Brian