Clozure CL 简称 CCL. 网站在 http://ccl.clozure.com/
是一个高性能的开源 Common Lisp 实现,其特性包括 native 线程的支持等等。还包括一个 IDE,但好像只是 for Mac 的。windows 上估计跑不起来。不过不要紧,我也可以将它 setup 到 Emacs 中。
CCL 可以通过 svn 直接下载到本机的一个目录。然后打开 .emacs.d\init.el 文件,将原先 clisp 的配置注释掉,加入一行指向 CCL 的 exe 即可:
;(setq inferior-lisp-program "clisp")
(setq inferior-lisp-program "e:/ccl/wx86cl.exe")
接下来我简单的测试对比了一下 clisp 和 CCL 的性能。各进行1千万次简单的加法运算:
clisp:
CL-USER> (time (loop for i from 1 to 10000000 do (+ 100 100)))
Real time: 16.82791 sec.
Run time: 16.8125 sec.
Space: 4580 Bytes
NIL
CCL:
CL-USER> (time (loop for i from 1 to 10000000 do (+ 100 100)))
(LOOP FOR I FROM 1 TO 10000000 DO (+ 100 100)) took 78 milliseconds (0.078 seconds) to run
with 2 available CPU cores.
During that period, 78 milliseconds (0.078 seconds) were spent in user mode
0 milliseconds (0.000 seconds) were spent in system mode
32 bytes of memory allocated.
NIL
天壤之别!CCL 还利用上了我电脑上的双核 CPU. 比较下来 clisp 的性能可以用垃圾来形容。而且,CCL 是支持多线程的,clisp 不支持。
虽然 clisp 性能差,不过,目前来说保留它的理由是可以用来运行 Portable Allegro Serve 的代码。而我粗略的试了一下在 CCL 下跑这个代码会报错。