axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] SBCL and compiler speed


From: Waldek Hebisch
Subject: [Axiom-developer] SBCL and compiler speed
Date: Thu, 22 Feb 2007 17:40:49 +0100 (CET)

Encouraged by progress made by Greg Vanuxem I decided to retry
my attempt to compile Axiom using sbcl.  One of my main motivators
is problem of long compile times.  It is hard to resolve such
problems without a profiler.  I was unable to profile gcl compiled
programs, while profiling seem to work quite well in sbcl.
FYI I use the following patch to Juergen Weiss version:

http://www.math.uni.wroc.pl/~hebisch/prog/sbcl-cmu2.diff

Currently Debian sbcl 0.9.16 gives up compiling ALGSC (1.0 after
1 hour is still working), however I collected some timing data.
Namely I used sbcl compiled interpsys to do bootstrap part of
algebra build (like new bootstrap in wh-sandbox).  The profile
shows interesting things. First, compilation is much faster than
using gcl (about 15 minutes on the same machine) .  Most of the
time is spent in Lisp compilation, but we also have a few hot
spots in spad compilation.

Some remarks: This is profile from the third bootstrap stage,
consisting of normal compilation of all categories and about
20 core domains.  Profiles form earlier stages are somwhat
different -- the first stage is much faster, and Lisp compilation
takes smaller part.  The second stage is similar to the third.
I think that third stage is closer to normal compilation
(however, bootstrap compiles only few domains, while rest of
build handles bulk of domains and packages).


  seconds  |     consed    |   calls   |  sec/call  |  name
---------------------------------------------------------------
    56.724 | 3,295,119,728 |       342 |   0.165859 | 
RECOMPILE-LIB-FILE-IF-NECESSARY
    26.956 |    39,137,360 |   437,427 |   0.000062 | |coerce|
    18.446 | 1,135,112,672 |       342 |   0.053935 | LOCALDATABASE
    15.316 |       382,448 |   398,448 |   0.000038 | |isDomainForm|
    14.991 |   546,596,384 |   386,423 |   0.000039 | |comp3|
    14.179 |   848,948,032 |    10,826 |   0.001310 | EVAL
     6.340 |    82,164,176 | 1,301,192 |   0.000005 | |macroExpand|
     5.923 |   355,568,272 |     2,482 |   0.002386 | |spadCompileOrSetq|
     5.512 |   188,600,624 |     2,140 |   0.002576 | 
|compDefineCapsuleFunction|
     3.792 |    40,395,328 |   265,305 |   0.000014 | |compAtom|
     3.732 |   253,396,128 |       342 |   0.010912 | |compDefineLisplib|
     2.740 |   105,498,352 |     2,795 |   0.000980 | COMP370
     2.332 |   151,835,232 |       118 |   0.019762 | |mkCategoryPackage|
     1.968 |    97,820,208 |       204 |   0.009645 | |compDefineCategory2|
     1.814 |   129,140,032 |    19,498 |   0.000093 | |knownInfo|
     1.751 |    12,989,472 |     4,432 |   0.000395 | |compColon|
     0.992 |     6,727,248 |   204,213 |   0.000005 | |compSymbol|
     0.951 |    30,750,720 |   142,563 |   0.000007 | |getFormModemaps|
     0.749 |   225,793,568 |       138 |   0.005431 | |compDefineFunctor1|
     0.740 |    42,394,672 |     2,482 |   0.000298 | |compile|
     0.557 |    58,616,512 |         7 |   0.079579 | |compAdd|
     0.484 |    19,390,784 |       138 |   0.003507 | 
|makeFunctorArgumentParameters|
     0.203 |     8,872,672 |     2,502 |   0.000081 | COMP
     0.099 |     2,912,032 |     9,164 |   0.000011 | 
|updateCategoryFrameForCategory|
     0.094 |     6,528,944 |       250 |   0.000375 | 
|updateCategoryFrameForConstructor|
     0.067 |       111,328 |     2,140 |   0.000031 | |hasSigInTargetCategory|
     0.010 |     1,569,968 |    18,160 |   0.000001 | |compCategoryItem|
     0.010 |       130,496 |       342 |   0.000029 | |compileConstructor1|
     0.008 |       226,064 |     3,438 |   0.000002 | |compDefineAddSignature|
     0.007 |         4,144 |       342 |   0.000020 | |unloadOneConstructor|
     0.006 |             0 |     4,137 |   0.000002 | |getAbbreviation|
     0.002 |             0 |     2,140 |   0.000001 | |addArgumentConditions|
     0.002 |         8,192 |     2,341 |   0.000001 | |getSignatureFromMode|
     0.002 |       144,448 |       956 |   0.000002 | |orderByDependency|
     0.001 |             0 |     2,281 |   0.000001 | |primitiveType|
     0.001 |             0 |       138 |   0.000007 | 
|addEmptyCapsuleIfNecessary|
     0.000 |         8,192 |       138 |   0.000000 | |compDefineFunctor|
     0.000 |       138,848 |     3,328 |   0.000000 | |compDefine|
     0.000 |        16,384 |       204 |   0.000000 | |compDefineCategory|
     0.000 |    18,943,744 |   250,466 |   0.000000 | |comp|
     0.000 |   206,764,272 |   386,423 |   0.000000 | |comp2|
     0.000 |       446,928 |       346 |   0.000000 | |compWithMappingMode|
     0.000 |    75,078,768 |   107,669 |   0.000000 | |compExpression|
     0.000 |    11,108,624 |    84,858 |   0.000000 | |compForm|
     0.000 |   190,556,032 |   143,419 |   0.000000 | |compForm1|
     0.000 |     4,939,808 |    58,857 |   0.000000 | |compArgumentsAndTryAgain|
     0.000 |    12,663,168 |    73,948 |   0.000000 | |compForm2|
     0.000 |    55,031,440 |    91,510 |   0.000000 | |compForm3|
     0.000 |     1,759,856 |     1,796 |   0.000000 | |compIf|
     0.000 |        45,840 |     2,046 |   0.000000 | |getSuccessEnvironment|
     0.000 |       823,344 |     3,545 |   0.000000 | |compDefine1|
     0.000 |        53,600 |       204 |   0.000000 | |compDefineCategory1|
     0.000 |       634,384 |       956 |   0.000000 | |compDefWhereClause|
     0.000 |       903,936 |     2,887 |   0.000000 | |doIt|
     0.000 |     3,801,216 |    31,201 |   0.000000 | |compApplication|
     0.000 |     2,805,328 |     4,855 |   0.000000 | |applyMapping|
     0.000 |    65,133,568 |    51,649 |   0.000000 | |compApplyModemap|
---------------------------------------------------------------
   187.502 | 8,338,543,520 | 4,530,493 |            | Total



-- 
                              Waldek Hebisch
address@hidden 




reply via email to

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