A simple, fast, monitoring profiler for Clojure/Script.
Usage: wrap+name interesting body exprs with the `p` macro. Then activate
profiling of these wrapped exprs using the `profiled` or `profile` macros:
(profiled {} (p :my-fn (my-fn))) ; Returns [<body-result> <?pstats>]
(profile {} (p :my-fn (my-fn))) ; Returns <body-result> and dispatches a
; profiling signal (map) to all registered handlers.
Provides extensive facilities for compile-time elision and runtime filtering.
See the relevant docstrings for more info:
`p`, `profiled`, `profile`, `add-handler!`, etc.
(p [opts & body] [id & body]) ; e.g. `(p ::my-id (do-work))`
(profiled [opts & body]) ; e.g. `(profiled {:level :info} (my-fn))`
(profile [opts & body]) ; e.g. `(profiled {:level :info} (my-fn))`
(add-handler! [handler-id handler-fn dispatch-opts])
How/where to use this library:
Tufte profiling is highly optimized: even without elision, you can usually
leave profiling active in production (e.g. for sampled profiling, or to
detect unusual performance behaviour). Tufte's `pstats` data is well suited
to programmatic monitoring.Tufte -> Telemere handler, Ref. <https://www.taoensso.com/telemere>.
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 |