[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

optimization



Two more questions: 

1. CLTL lists the functions BIT and SBIT as
(potentially) faster versions of AREF specialized for use with
bit-arrays. However, in MACL the reverse seems to be the case:

(defun testbit () 
  (let* ((a (make-array 100 :element-type 'bit :initial-element 0)))
    (format t "~% ATYPE= ~A SIZE=~5A" (type-of a) (array-dimensions a))
    (time (loop for j from 1 to 10000
                do (aref a 50)))
    (time (loop for j from 1 to 10000
                do (bit a 50)))
    (time (loop for j from 1 to 10000
                do (sbit a 50)))))

? (testbit)

 ATYPE= (SIMPLE-ARRAY BIT (100)) SIZE=(100)
(LOOP FOR J FROM 1 TO 10000 DO (AREF A 50)) took 35 ticks (0.583 seconds) to run.
(LOOP FOR J FROM 1 TO 10000 DO (BIT A 50)) took 85 ticks (1.417 seconds) to run.
(LOOP FOR J FROM 1 TO 10000 DO (SBIT A 50)) took 83 ticks (1.383 seconds) to run.
NIL

2. In diassembling code one encounters system subprimitives.
Some have reasonably menmonic names, some not. Is there
any doc available on what these do? Also, a few do not seem
to have names at all:

(JSR_SUPRIM -2238)
(JSR_SUPRIM -2190)

thanks, 
rjz