modifying 'great'



>>>>> "Barton" == Barton Willis <willisb at unk.edu> writes:

    Barton> Ray put a comment in simp.lisp that warns developers to be careful
    Barton> about modifying 'great.' It's good advice. But you all might like to
    Barton> know that the test suite calls great 3,035,005 times; also 'great'
    Barton> consumes about 23.6% of the run time for the test suite. I used
    Barton> pedestrian means to get this data, but I think it's close.

What Lisp did you use?  GCL?

Anyway, this was interesting, so I ran CMUCL's profiler over the
testsuite.  Here are the top 30 or so CPU users:

       Consed |       Calls |     Secs | Sec/Call |  Bytes/C. | Name:
-----------------------------------------------------------------------
  156,483,792 |   2,470,902 |   85.318 |  0.00003 |        63 | TMS
  142,466,784 |          69 |   76.630 |  1.11058 | 2,064,736 | LHOSPITAL-CATCH
  129,873,664 |   1,151,059 |   58.418 |  0.00005 |       113 | TIMESIN
   92,101,096 |     978,745 |   55.243 |  0.00006 |        94 | SIMPTIMES
   76,579,384 |  10,362,257 |   54.715 |  0.00001 |         7 | ZEROP1
   98,016,336 |     507,306 |   52.525 |  0.00010 |       193 | SIMPEXPT
   53,393,504 |  23,049,831 |   51.620 |  0.00000 |         2 | ALIKE1
  299,087,480 |         569 |   45.489 |  0.07995 |   525,637 | NEW-FILE-SEARCH1
   93,168,208 |   1,181,579 |   44.347 |  0.00004 |        79 | ASSOL
   84,078,400 |         142 |   42.710 |  0.30077 |   592,101 | SIMPLIMPLUS
            0 |  34,166,994 |   38.046 |  0.00000 |         0 | MEMQ
   66,143,808 |       1,804 |   36.946 |  0.02048 |    36,665 | $LIMIT
   63,818,632 |       6,425 |   35.987 |  0.00560 |     9,933 | ZGCD
   44,228,592 |   5,521,780 |   29.106 |  0.00001 |         8 | PZEROP
   45,798,640 |   1,661,359 |   27.127 |  0.00002 |        28 | GREAT
   39,527,400 |   1,718,403 |   26.873 |  0.00002 |        23 | SIMPLIFYA
  307,411,360 |     756,390 |   25.777 |  0.00003 |       406 | EXPLODEN
   40,555,888 |   3,332,631 |   22.535 |  0.00001 |        12 | EQTEST
   39,706,560 |     558,379 |   22.333 |  0.00004 |        71 | ORDLIST
   50,677,048 |   1,030,046 |   21.170 |  0.00002 |        49 | PLS
   40,170,840 |     296,955 |   20.886 |  0.00007 |       135 | PLUSIN
   36,612,512 |   2,288,267 |   20.533 |  0.00001 |        16 | VISIBLEP
   29,516,472 |   2,688,265 |   20.303 |  0.00001 |        11 | ALIKE
            0 |  15,039,570 |   19.081 |  0.00000 |         0 | $BFLOATP
   26,620,448 |   4,121,335 |   17.897 |  0.00000 |         6 | ONEP1
   27,724,088 |   2,318,119 |   15.864 |  0.00001 |        12 | CNTP
   24,853,056 |     422,383 |   15.605 |  0.00004 |        59 | SIMPLUS
            0 |  12,988,560 |   15.183 |  0.00000 |         0 | MNUMP
  286,571,832 |     452,237 |   14.286 |  0.00003 |       634 | PRINT-INVERT-CASE
   22,378,544 |   2,277,281 |   13.785 |  0.00001 |        10 | MEMALIKE
...
-------------------------------------------------------------------
5,209,961,048 | 287,304,055 | 2101.466 |          |           | Total

The times are exclusive, I think.  That is, the time reported is the
time spent in the function, not including time spent in functions
called from that function.

Not sure I trust these results though.  The test took over 2000 sec,
but normally only takes 200 or so.  I guess profiling overhead is
pretty big.

I think SBCL could give better results here with its statisical
profiler....

Ray