From: Michael A. K. <ma...@ll...> - 2002-06-21 13:58:33
|
I noted the following yesterday... * (time (setf tmp (m:seq 0 32767) done 'done)) Evaluation took: 45.28 seconds of real time 44.78 seconds of user run time 0.01 seconds of system run time 2 page faults and 785416 bytes consed. DONE Looking at SEQ.LISP I'd blame %PUSH-ON-END%. Due to time constraints I did a quick hack to use an ARRAY and coerce it to a LIST on return. I DON'T KNOW IF THIS IS A GOOD FIX (the fastest and compatible with other MATLISP internal uses or not), but it answered the mail for me yesterday. This is the new timing... * (time (setf tmp (seq 0 32767) done 'done)) Evaluation took: 0.02 seconds of real time 0.02 seconds of user run time 0.0 seconds of system run time 0 page faults and 393224 bytes consed. DONE * FWIW the diffs and the new SEQ.LIST are attached. Note also that I moved the check for STEP equal to zero earlier in the routine. |