From: Christophe R. <cs...@ca...> - 2002-07-16 08:10:02
|
On Mon, Jul 15, 2002 at 08:09:45PM -0700, William Harold Newman wrote: > +188: "compiler performance fiasco involving type inference and UNION-TYPE" > + In sbcl-0.7.5.11 on a 700 MHz Pentium III, > + (time (compile > + nil > + '(lambda () > + (declare (optimize (safety 3))) > + (declare (optimize (compilation-speed 2))) > + (declare (optimize (speed 1) (debug 1) (space 1))) > + (let ((fn "if-this-file-exists-the-universe-is-strange")) > + (load fn :if-does-not-exist nil) > + (load (concatenate 'string fn ".lisp") :if-does-not-exist nil) > + (load (concatenate 'string fn ".fasl") :if-does-not-exist nil) > + (load (concatenate 'string fn ".misc-garbage") > + :if-does-not-exist nil))))) > + reports > + 134.552 seconds of real time > + 133.35156 seconds of user run time Ow ow ow ow ow. Ow. Do you happen to know which particular bit of type-inferencing is killing it (my initial suspicion would be somewhere in CONCATENATE derive-type, but...) Cheers, Christophe -- Jesus College, Cambridge, CB5 8BL +44 1223 510 299 http://www-jcsu.jesus.cam.ac.uk/~csr21/ (defun pling-dollar (str schar arg) (first (last +))) (make-dispatch-macro-character #\! t) (set-dispatch-macro-character #\! #\$ #'pling-dollar) |