tupelo.profile
defnp
macro
(defnp name & forms)
A replacement for clojure.core/defn that accumuldates profiling data. Converts a function like:
(defnp add-1
"Adds one to an arg"
[x]
(inc x))
to:
(defn add-1
"" ; dummy docstring
[x]
(with-timer-accum :demo.core/add-1 ; lookup key is fully-qualified function name
(inc x))) ; function body unchanged
Does not handle function metadata like (defn ^:private my-fn ...)
print-profile-stats
(print-profile-stats)
Prints profile stats to stdout.
profile-data-sorted
(profile-data-sorted)
Returns a vector of profile stats sorted by ID.
profile-map
(profile-map)
Returns a map of all profile stats, keyed by ID.
stats-get
(stats-get id)
Return basic stats for a given id
stats-update
(stats-update id seconds)
Updates timing stats for a given key & elapsed time
timer-stats-reset
(timer-stats-reset)
Reset all timer statistics to empty
with-timer-accum
macro
(with-timer-accum id & forms)
Times execution of Clojure forms, accumulating results in timer-stats map under key `id`.
with-timer-print
macro
(with-timer-print id & forms)
Times execution of Clojure forms, printing the result to the screen.
with-timer-result
macro
(with-timer-result & forms)
Times execution of Clojure forms, returning a result map like:
{:result result :seconds seconds}