[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
compilation, loading, and running times of Oz using CMU CL vs Allegro
I just finished compiling Oz using CMU Common Lisp, in order to
evaluate the performance of CMU Common Lisp for use with Oz.
Versions Used:
CMU Common Lisp 15b, running on GLINDA.OZ.CS.CMU.EDU
Hemlock 3.5 (15b), Python 1.0(15b), target SPARCstation/Sun 4
Allegro CL 4.0.1 [Sun4] (2/8/91)
Copyright (C) 1985-1991, Franz Inc., Berkeley, CA, USA
Note: Allegro CL 4.0.1 has native CLOS; CMU Common Lisp uses PCL.
CMUCL Allegro
Core Size: 20.2 mb 7.5 mb
Pagingfile usage: 38 mb 20 mb
Compilation Time: 8 hours* 1 hour
Loading Time: 5 hours 21 minutes
Time to run 1 tick**: 7.2 minutes 32 seconds
Consing during 1 tick: 2.9 mb 120 k (1.084 mb other bytes)
* CMUCL failed to compile on GLINDA.OZ, a sparc-1, because it ran out
of paging space and afs cache space. This compilation time is on a
sparc-elc. All other times are on a freshly booted GLINDA.OZ. Note
also that even on a sparc-elc, CMUCL failed to compile lyotard.lisp,
leaving a truncated fasl file.
** To make the comparison fair, I ran both with lyotard out of the
main loop and with sound turned off. Loading lyotard.lisp is not
feasible in CMUCL.
Other comments:
CMUCL seems to cons considerably during get-internal-run-time.
During the tick, CMUCL printed out several pages worth of
compilation messages (notes) related to PCL optimatizations
such as "Doing MOVE-FROM-SIGNED/UNSIGNED (cost 20) from PCL::REG2."
The CMUCL Python compiler warnings were useful and informative,
although in some instances too informative.
Conclusions:
o Allegro CL 4.0.1 is about 15 times as fast as CMU CL running
Oz on a sparc-1 and has about half the memory requirements.
I would guess that a significant portion of the difference
in speed is due to the lack of a native CLOS in CMU CL.
o CMU CL's compiler is thorough in the compiler warnings it
issues. Many of the warnings for Oz concern unused parameters in
methods and undeclared global variables. Oz folk should
look through the .err files in the cmucl subdirectories
of home, tea and system and fix all compiler warnings in
their code.
--mark