(defmacro with-bench ((&optional (num-repeat 10000000)) &body body) `(time (loop repeat ,num-repeat do (progn ,@body)))) (defun dbind-test () (let ((list (list 1 2 3))) (with-bench () (destructuring-bind (x y z) list (+ x y z))))) (defun let-test () (let ((list (list 1 2 3))) (with-bench () (let ((x (first list)) (y (second list)) (z (third list))) (+ x y z))))) CL-USER> (dbind-test) Evaluation to

