|
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.
|