From: Christophe R. <cs...@ca...> - 2002-09-22 16:24:24
|
On Sun, Sep 22, 2002 at 08:14:31AM -0500, William Harold Newman wrote: > On Sun, Sep 22, 2002 at 01:56:46PM +0400, Alexey Dejneka wrote: > > It seems that 0.7.7.33 compiler is 1.5-2 times slower than > > 0.7.7.32. On my machine the attached file compiles in 0.6 sec real / > > 0.44 sec user with 0.7.7.32, 1.0/0.7 with 0.7.7.33, 0.9/0.66 with > > 0.7.7.35. > > Yes, I thought I had noticed that the run-tests.sh stuff was running > more slowly too, though I haven't measured it yet, much less figured > out which version caused the change. Yeah -- filesys.pure.lisp seems notably slower, for one. > >From > cvs diff -D '2002-09-20 16:29 GMT' -D '2002-09-20 16:49 GMT' > ../sbcl-0.7.7.33.+diff ; multibeep 4 > my first guess would be that the slowdown is caused by some change like this > - (case (type-specifier-atom output-type-spec) > - ((simple-vector simple-string vector string array simple-array > - bit-vector simple-bit-vector base-string > - simple-base-string) ; FIXME: unifying principle here? > - (let ((result (apply #'concat-to-simple* output-type-spec sequences))) > - #!+high-security (aver (typep result output-type-spec)) > - result)) > - (list (apply #'concat-to-list* sequences)) > + (let ((type (specifier-type output-type-spec))) > + (cond > + ((csubtypep type (specifier-type 'vector)) > + (apply #'concat-to-simple* output-type-spec sequences)) > + ((csubtypep type (specifier-type 'list)) > + (apply #'concat-to-list* sequences)) > always calling potentially-expensive operations like CSUBTYPEP and > SPECIFIER-TYPE. I doubt I'll do anything about it today besides > guessing like this, but it would be good to fix the problem before > releasing sbcl-0.7.8. One possibility, if it is indeed this change that has caused the slowdown, is that it ought to be possible to test the return value of SPECIFIER-TYPE with EQ against certain known types (as the types are cached). > If we fix this quickly and easily, and no other issues come up, I > might release 0.7.8 on Thursday. Otherwise, it'll probably be ready by > the end of the month anyway. Sorry that I won't be around to help... but it might be time to do a general profile of the entire compiler (any ideas on how to do this efficiently?) Cheers, Christophe -- http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757 (set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b))) (defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge) |