1 ;; Mesure performances.
3 ;; Evaluate an expression, but report the time spent
8 `(let* [~start (time-ms)
11 (prn (str "Elapsed time: " (- (time-ms) ~start) " msecs"))
14 ;; Count evaluations of a function during a given time frame.
18 run-fn-for* (fn* [fn max-ms acc-ms last-iters]
19 (let* [start (time-ms)
21 elapsed (- (time-ms) start)
22 iters (+ 1 last-iters)
23 new-acc-ms (+ acc-ms elapsed)]
24 ;; (do (prn "new-acc-ms:" new-acc-ms "iters:" iters))
25 (if (>= new-acc-ms max-ms)
27 (run-fn-for* fn max-ms new-acc-ms iters))))
31 ;; fn : function without parameters
32 ;; max-secs : number (seconds)
33 ;; return : number (iterations)
36 (run-fn-for* fn 1000 0 0)
38 (run-fn-for* fn (* 1000 max-secs) 0 0)))))