From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: =?utf-8?B?4oCYbWFw4oCZ?= and =?utf-8?B?4oCYZm9yLWVhY2jigJk=?= written in Scheme Date: Sun, 08 May 2011 17:31:23 +0200 Message-ID: References: <8739kt2jxb.fsf@gnu.org> <87r58clwzc.fsf@gnu.org> <871v09dygz.fsf_-_@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1304868702 4281 80.91.229.12 (8 May 2011 15:31:42 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 8 May 2011 15:31:42 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun May 08 17:31:37 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QJ5xJ-0005BI-F2 for guile-devel@m.gmane.org; Sun, 08 May 2011 17:31:37 +0200 Original-Received: from localhost ([::1]:48707 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJ5xI-00007D-Ve for guile-devel@m.gmane.org; Sun, 08 May 2011 11:31:36 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:45664) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJ5xG-00006l-C9 for guile-devel@gnu.org; Sun, 08 May 2011 11:31:36 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QJ5xC-0000WW-Lk for guile-devel@gnu.org; Sun, 08 May 2011 11:31:34 -0400 Original-Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62]:42481 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJ5xC-0000WK-JT; Sun, 08 May 2011 11:31:30 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 184AA460E; Sun, 8 May 2011 11:33:35 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=DoYY9GeH3Xnz 5XfKorcAyvVQk8A=; b=Bn8NMh8y8NYlo++zQZc2uWvWWLWqHl5/0akdebtdyKDq hC1RQijoad39cuuvcgxL0hs1gOKsssOh9egKiD2DF2hHkoODUGLMDzLu5CHSuV1T LV3wx8X+xzI3weAevgL1x6ijf6zYaBgj9znAQciB5ScJGsx5fgJ3THzo5Dyg+MY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=rsBxgV oTX5u947A9g1s/nSzgfS0cUhQhR215x2BvEPCwDLLhB0gVST6bD1vEZhTNPnXIWc h4WwGMr2hS2s+ePXOvXZVW9BEr+Xon0XCc974UlW8PozgyPN8+w7xyIse/RCQI6H AENBmEgXK90zu9QiZxNSazxg+3LKxzx+iSsIk= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id DD03B460D; Sun, 8 May 2011 11:33:33 -0400 (EDT) Original-Received: from unquote.localdomain (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 27E40460B; Sun, 8 May 2011 11:33:31 -0400 (EDT) In-Reply-To: <871v09dygz.fsf_-_@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s?= =?utf-8?Q?=22's?= message of "Sun, 08 May 2011 17:05:32 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: 88C4FEAC-7988-11E0-BF3D-90BEB0B5FC3A-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 64.74.157.62 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:12459 Archived-At: On Sun 08 May 2011 17:05, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Could you add benchmarks so we can see how the Scheme and C > implementations compare? Done. Current Guile: $ ./benchmark-guile srfi-1.bm Benchmarking /home/wingo/src/guile/meta/guile ... srfi-1.bm with GUILE_LOAD_PATH=3D/home/wingo/src/guile/benchmark-suite ;; running guile version 2.0.1.22-4cbd6 ;; calibrating the benchmarking framework... ;; framework time per iteration: 5.72204532623291e-8 ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /home/wingo/src/guile/benchmark-suite/benchmarks/srfi-1.bm ;;; compiled /home/wingo/src/guile/cache/guile/ccache/2.0-LE-8-2.0/home/w= ingo/src/guile/benchmark-suite/benchmarks/srfi-1.bm.go ("srfi-1.bm: fold: big" 30 user 2.03 benchmark 2.0299982833864 bench/inte= rp 2.0299982833864 gc 0.0) ("srfi-1.bm: fold: small" 2000000 user 1.54 benchmark 1.42555909347534 be= nch/interp 1.42555909347534 gc 0.0) ("srfi-1.bm: drop-while: big" 30 user 1.78 benchmark 1.7799982833864 benc= h/interp 1.7799982833864 gc 0.0) ("srfi-1.bm: drop-while: small" 2000000 user 1.38 benchmark 1.26555909347= 534 bench/interp 1.26555909347534 gc 0.0) ("srfi-1.bm: map: big" 30 user 4.55 benchmark 4.5499982833864 bench/inter= p 4.0847600543864 gc 0.465238229) ("srfi-1.bm: map: small" 2000000 user 3.2 benchmark 3.08555909347534 benc= h/interp 2.97014448647534 gc 0.115414607) ("srfi-1.bm: for-each: big" 30 user 2.96 benchmark 2.9599982833864 bench/= interp 2.9599982833864 gc 0.0) ("srfi-1.bm: for-each: small" 2000000 user 2.34 benchmark 2.2255590934753= 4 bench/interp 2.22555909347534 gc 0.0) Guile 1.8: $ /opt/guile-1.8/env ./benchmark-guile -i /opt/guile-1.8/bin/guile srfi-1= .bm Benchmarking /opt/guile-1.8/bin/guile ... srfi-1.bm with GUILE_LOAD_PATH=3D/home/wingo/src/guile/benchmark-suite ERROR: no code for module (benchmark-suite lib) wingo@unquote:~/src/guile$ GUILE_LOAD_PATH=3D. /opt/guile-1.8/env ./bench= mark-guile -i /opt/guile-1.8/bin/guile srfi-1.bm Benchmarking /opt/guile-1.8/bin/guile ... srfi-1.bm with GUILE_LOAD_PATH=3D/home/wingo/src/guile/benchmark-suite:. ;; running guile version 1.8.7 ;; calibrating the benchmarking framework... ;; framework time per iteration: 9.5367431640625e-8 ("srfi-1.bm: fold: big" 30 user 7.14 benchmark 7.13999713897705 bench/int= erp 3.72999713897705 gc 3.41) ("srfi-1.bm: fold: small" 2000000 user 6.07 benchmark 5.87926513671875 be= nch/interp 2.91926513671875 gc 2.96) ("srfi-1.bm: drop-while: big" 30 user 5.51 benchmark 5.50999713897705 ben= ch/interp 2.92999713897705 gc 2.58) ("srfi-1.bm: drop-while: small" 2000000 user 3.18 benchmark 2.98926513671= 875 bench/interp 1.90926513671875 gc 1.08) ("srfi-1.bm: map: big" 30 user 7.93 benchmark 7.92999713897705 bench/inte= rp 4.90999713897705 gc 3.02) ("srfi-1.bm: map: small" 2000000 user 4.04 benchmark 3.84926513671875 ben= ch/interp 2.42926513671875 gc 1.42) ("srfi-1.bm: for-each: big" 30 user 5.35 benchmark 5.34999713897705 bench= /interp 4.02999713897705 gc 1.32) ("srfi-1.bm: for-each: small" 2000000 user 3.22 benchmark 3.0292651367187= 5 bench/interp 1.91926513671875 gc 1.11) Map and for-each are slower than fold right now because they check for circular lists. Dunno how useful that is, but it's what they always have done. Andy --=20 http://wingolog.org/