RosettaCodeData/Task/Rate-counter/Common-Lisp/rate-counter-2.lisp
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

10 lines
430 B
Common Lisp

(defmacro time-this (cnt &rest body)
(let ((real-t (gensym)) (run-t (gensym)))
`(let (,real-t ,run-t)
(setf ,real-t (get-internal-real-time)
,run-t (get-internal-run-time))
(loop repeat ,cnt do ,@body)
(list (/ (- (get-internal-real-time) ,real-t)
(coerce internal-time-units-per-second 'float))
(/ (- (get-internal-run-time) ,run-t)
(coerce internal-time-units-per-second 'float))))))