diff options
| author | Miki Tebeka <miki.tebeka@gmail.com> | 2015-03-01 06:12:42 +0200 |
|---|---|---|
| committer | Miki Tebeka <miki.tebeka@gmail.com> | 2015-03-01 06:12:42 +0200 |
| commit | 9fb199e2cb2cf44cd61c2a226193a70f6013aadc (patch) | |
| tree | 325a2a8e33e3e8d18217d10854152cab82ac8b61 /perf.mal | |
| parent | 49916f9402e30a5277146355be878b32ec30f46d (diff) | |
| parent | 2cb013877c4ed41d245ce7c5525405c4833c503d (diff) | |
| download | mal-9fb199e2cb2cf44cd61c2a226193a70f6013aadc.tar.gz mal-9fb199e2cb2cf44cd61c2a226193a70f6013aadc.zip | |
Merge branch 'master' of https://github.com/kanaka/mal
Diffstat (limited to 'perf.mal')
| -rw-r--r-- | perf.mal | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -5,3 +5,23 @@ (do (prn (str "Elapsed time: " (- (time-ms) start_FIXME) " msecs")) ret_FIXME)))) + +(def! run-fn-for* + (fn* [fn max-ms acc-ms iters] + (let* [start (time-ms) + _ (fn) + elapsed (- (time-ms) start) + new-iters (+ 1 iters) + new-acc-ms (+ acc-ms elapsed)] + ;(do (prn "here:" new-acc-ms "/" max-ms "iters:" new-iters) ) + (if (>= new-acc-ms max-ms) + (/ (* max-ms iters) new-acc-ms) + (run-fn-for* fn max-ms new-acc-ms new-iters))))) + +(def! run-fn-for + (fn* [fn max-secs] + (do + ;; Warm it up first + (run-fn-for* fn 1000 0 0) + ;; Now do the test + (/ (run-fn-for* fn (* 1000 max-secs) 0 0) 3)))) |
