From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: rixed@happyleptic.org Newsgroups: gmane.lisp.guile.user Subject: Re: Why is guile still so slow? Date: Wed, 12 Oct 2011 17:39:58 +0200 Message-ID: <20111012153958.GA20242@ccellier.rd.securactive.lan> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1318434021 29569 80.91.229.12 (12 Oct 2011 15:40:21 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 12 Oct 2011 15:40:21 +0000 (UTC) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Wed Oct 12 17:40:16 2011 Return-path: Envelope-to: guile-user@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 1RE0ug-0005PH-Mg for guile-user@m.gmane.org; Wed, 12 Oct 2011 17:40:10 +0200 Original-Received: from localhost ([::1]:33800 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RE0ug-0003pe-8C for guile-user@m.gmane.org; Wed, 12 Oct 2011 11:40:10 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:51370) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RE0ub-0003m8-8c for guile-user@gnu.org; Wed, 12 Oct 2011 11:40:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RE0uZ-0003O6-S9 for guile-user@gnu.org; Wed, 12 Oct 2011 11:40:05 -0400 Original-Received: from eneide.happyleptic.org ([213.251.171.101]:41294) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RE0uZ-0003Nm-M6 for guile-user@gnu.org; Wed, 12 Oct 2011 11:40:03 -0400 Original-Received: from extranet.securactive.org ([82.234.213.170] helo=ccellier.rd.securactive.lan) by eneide.happyleptic.org with esmtp (Exim 4.72) (envelope-from ) id 1RE0wp-0001N0-6A for guile-user@gnu.org; Wed, 12 Oct 2011 17:42:23 +0200 Original-Received: from rixed by ccellier.rd.securactive.lan with local (Exim 4.72) (envelope-from ) id 1RE0uU-0005JN-EB for guile-user@gnu.org; Wed, 12 Oct 2011 17:39:58 +0200 Mail-Followup-To: rixed@happyleptic.org, guile-user@gnu.org Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 213.251.171.101 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:8857 Archived-At: -[ Wed, Oct 12, 2011 at 10:54:11AM -0400, John Lewis ]---- > I don't understand while Guile is so slow. According to these > benchmarks http://www.cs.utah.edu/~mflatt/benchmarks-20100126/log3/Benchmarks.html > GNU Guile is running about a order of magnitude slower than Bigloo, > Chicken, Gambit, Ikarus, Larceny, MIT, and Racket(PLT) with most task. Bigloo, Chicken and Gambit compiles to native code (through C). I can't tell for the others. This simple fact certainly accounts for most of the difference. Also, some (Bigloo for sure, maybe others) have type annotations while guile currently have not (although this was discussed recently). Also, as guile now relies on bdwgc for the GC it might suffer from conservative GC (while other scheme might use a dedicated GC, which can additionally perform some life span analysis to reduce useless collection - IIRC Gambit does this... or is it Stalin?). bdwgc is certainly a big win with regard to code complexity, though. > the sluggishness of Guile > is going to make it impossible to use to for application development > no matter how Ubiquitous Guile currently is. If so, then there is no application written in Python, Ruby, Javascript... :-) Joking aside, maybe guile is too slow for writing whole apps in it, but it's primary goal is to be an extension language, a companion for another C/C++ program, or at best an orchestrator of business oriented code. So performance is not the primary objective. For instance, I'm using guile as an extension language for a low-level commercial product for which speed matters, and it's perfect for what it does (configuring the software, mostly). Using another scheme app would have been less convenient since they are less easy to link with C code.