Irene DURAND idurand@labri.fr writes:
The following McCLIM application (which uses threads through make-process) runs fine with both CMUCL-18e and OpenMCL but desesperatingly slow with SBCL 0.9.5.
Each call to the command "Process" returns almost instantly with OpenMCl and CMUCL but takes at least 5 seconds with SBCL.
Did anyone notice a problem using threads with SBCL?
I haven't noticed anything like a five-second latency in thread startup.
(let ((*n* 0)) (defun pause () (incf *n*) (dotimes (i 100000000) (1+ 1)) (format *standard-output* "f ~A done~%" *n*) ))
Under normal operation, the loop in this function would be optimized away. Do you have anything in your personal or site-wide sbcl initialization files, such as a global proclamation of a high debug setting? Or any other package which performs such a global proclamation?
I tried your test, and each call to Process finished essentially instantaneously. A screenshot is available at http://www-jcsu.jesus.cam.ac.uk/~csr21/durand-test.png. Putting a call to TIME around the call to (PAUSE) in COM-PROCESS gives output of the form Evaluation took: 0.125 seconds of real time 0.121982 seconds of user run time 0.001 seconds of system run time 0 page faults and 286,448 bytes consed. which is perhaps a little high, but not completely ridiculous for graphical output.
Cheers,
Christophe