From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludovic.courtes@laas.fr (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: GC improvements Date: Tue, 20 Dec 2005 17:32:55 +0100 Organization: LAAS-CNRS Message-ID: <87slsnk9u0.fsf@laas.fr> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1135103534 12995 80.91.229.2 (20 Dec 2005 18:32:14 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 20 Dec 2005 18:32:14 +0000 (UTC) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Dec 20 19:32:05 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1EomER-0002ng-Ix for guile-devel@m.gmane.org; Tue, 20 Dec 2005 19:29:03 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EomFL-0002Bc-V1 for guile-devel@m.gmane.org; Tue, 20 Dec 2005 13:29:59 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1EokRH-0007hC-KB for guile-devel@gnu.org; Tue, 20 Dec 2005 11:34:12 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1EokRE-0007gW-RD for guile-devel@gnu.org; Tue, 20 Dec 2005 11:34:10 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EokRD-0007fv-Cl for guile-devel@gnu.org; Tue, 20 Dec 2005 11:34:07 -0500 Original-Received: from [140.93.0.15] (helo=laas.laas.fr) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1EokUM-0008Ke-9A for guile-devel@gnu.org; Tue, 20 Dec 2005 11:37:22 -0500 Original-Received: by laas.laas.fr (8.13.1/8.13.4) with SMTP id jBKGX86R018435; Tue, 20 Dec 2005 17:33:08 +0100 (CET) Original-To: guile-devel@gnu.org X-URL: http://www.laas.fr/~lcourtes/ X-Revolutionary-Date: 30 Frimaire an 214 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEB1F5364 X-PGP-Key: http://www.laas.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 821D 815D 902A 7EAB 5CEE D120 7FBA 3D4F EB1F 5364 X-OS: powerpc-unknown-linux-gnu Mail-Followup-To: guile-devel@gnu.org User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux) X-Spam-Score: 0 () X-Scanned-By: MIMEDefang at CNRS-LAAS X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:5544 Archived-At: Hi, I did some profiling with the workload I described earlier[0]. When using the three patches I sent recently[*], around 35% of the execution time is spent in memory management: % cumulative self self total time seconds seconds calls s/call s/call name 28.10 16.63 16.63 41385 0.00 0.00 ceval 18.02 27.29 10.66 32399 0.00 0.00 scm_i_sweep_card 8.54 32.34 5.06 4729114 0.00 0.00 scm_cell 5.11 35.37 3.03 2737955 0.00 0.00 scm_ilookup 3.23 37.28 1.91 7086 0.00 0.00 scm_i_init_card_freelist 2.96 39.03 1.75 383266 0.00 0.00 scm_gc_mark_dependencies 2.64 40.59 1.56 657 0.00 0.01 scm_i_mark_weak_vector_non_weak Commenting out explicit calls to `scm_gc ()' and `scm_i_gc ()' doesn't make a big difference. The workload I used is quite similar to what happens at startup time: new objects are created, new symbols are defined, and that's it. The symbols created (and even the numbers created) are expected to stay alive until the end of the program. Thus, intuitively, one might say that there is nothing to collect in this program, so no need to mark/sweep all the time. Therefore, my question is: how can we improve on this? As I understand it, generational GC could help solve this. However, being unfamiliar with this, I fail to see how this could be integrated, and how much work is required. Thanks, Ludovic. [0] http://lists.gnu.org/archive/html/guile-devel/2005-12/msg00093.html [*] Improved `scm_from_locale_symbol ()' + `guile-reader', fixed FREE_COUNT in `scm_i_sweep_card ()', fixed CELLS_COLLECTED in `scm_i_sweep_some_cards ()') _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://lists.gnu.org/mailman/listinfo/guile-devel