A Clojure library designed to capture execution time in a more granular way than clojure.core's time, but less so than a proper profiling tool.
Obtainable from Clojars:
To capture timing information for a block, wrap with with-times. This returns a tuple containing first the timing information, as a map, secondly the result of the block:
(let [[timings result] (with-times (do-stuff 1 2))]
(println "Total time: " (:total timings))
(do-something result))
To capture timing information, and print out a summary, wrap with report-times:
(report-times (do-stuff 1 2))
To capture more granular timings, in addition to the total time, use cap-time:
(report-times
(doseq [x (range 1000)]
(cap-time :inner (reduce + (range x)))))
This prints a summary that looks a bit like:
:inner => {:count 1000, :average 0.07283200000000019, :sum 72.83200000000019}
:total => (86.418)
The same block with with-times returns a Map that contains all the interim values, rather than the summary.
Can you improve this documentation? These fine people already did:
Ben Ashford & benashfordEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |