[Top][All Lists]
[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
- [Axiom-developer] SBCL and compiler speed,
Waldek Hebisch <=