chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Compilation time


From: Peter Bex
Subject: [Chicken-users] Compilation time
Date: Tue, 17 Jan 2012 21:15:38 +0100
User-agent: Mutt/1.4.2.3i

Hi all,

I'd like to make the tests for numbers compile so that it tests not just
the library itself but also the newly added types database (I know, the
tests need more work to be able to actually test this properly, but bear
with me).

However, compilation time goes through the roof!  At first, I thought it
was expansion time in this horrible numbers syntax test which was also
put in Chicken itself, but it turns out not to be the case.

Just compiling the tests that I took from Gauche takes over a minute:

$ time csc numbers-test-gauche.scm
csc numbers-test-gauche.scm  70.82s user 1.23s system 98% cpu 1:13.24 total

(master and 4.7.0 take long)  The r4rs tests also take rather long;
about 32 seconds.  But it gets worse!
When you combine the whole bunch by running "csc run.scm" (which contains
INCLUDE statements for all the separate test scripts), it takes
7.5 *minutes* to compile (and lots of memory; 256MB - but I consider
that less important at the moment), which is of course not acceptable
just to run a bunch of tests!

It looks like we have a bad case of exponential complexity somewhere
in the compiler, since I had expected the total compilation time to be
in the ballpark of the sum of the individual compilation times.

I was wondering if someone could provide some insight in how to figure
out what causes it to take so long to compile.  I've already pinpointed
that the behaviour is somewhere in the analyzer / code emitter since
"csc -P numbers-test-gauche.scm" takes about 1.46 seconds but
"csc -A numbers-test-gauche.scm" takes about 10 seconds and
"csc -t numbers-test-gauche.scm" takes about 64 seconds.

It turns out that compiling with -O0 doesn't change this much and it
actually gets worse, so it's probably not some part of the optimizer,
which I initially expected.

The complexity figures for the whole bulk of run.scm are similar;
about a quarter of the compilation time is spent in the analyzing phase.

Cheers,
Peter
-- 
http://sjamaan.ath.cx
--
"The process of preparing programs for a digital computer
 is especially attractive, not only because it can be economically
 and scientifically rewarding, but also because it can be an aesthetic
 experience much like composing poetry or music."
                                                        -- Donald Knuth



reply via email to

[Prev in Thread] Current Thread [Next in Thread]