Tufte at <ahref="https://github.com/ptaoussanis/tufte">https://github.com/ptaoussanis/tufte</a>.</pre></div><divclass="public anchor"id="var-*pdata*"><h3>*pdata*</h3><h4class="dynamic">dynamic</h4><divclass="usage"></div><divclass="doc"><preclass="plaintext">{::pid {:times [t1 t2 ...] ; Times awaiting merge into stats
:ntimes _ ; (count times)
:stats {} ; Cumulative stats
}}</pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L21">view source</a></div></div><divclass="public anchor"id="var-capture-time.21"><h3>capture-time!</h3><divclass="usage"><code>(capture-time! id t-elapsed)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L104">view source</a></div></div><divclass="public anchor"id="var-defnp"><h3>defnp</h3><h4class="type">macro</h4><divclass="usage"><code>(defnp name doc-string? attr-map? [params*] prepost-map? body)</code><code>(defnp name doc-string? attr-map? ([params*] prepost-map? body) + attr-map?)</code></div><divclass="doc"><preclass="plaintext">Like `defn` but wraps fn bodies with `p` macro.
</pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L217">view source</a></div></div><divclass="public anchor"id="var-fnp"><h3>fnp</h3><h4class="type">macro</h4><divclass="usage"><code>(fnp name? [params*] prepost-map? body)</code><code>(fnp name? ([params*] prepost-map? body) +)</code></div><divclass="doc"><preclass="plaintext">Like `fn` but wraps fn bodies with `p` macro.
</pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L235">view source</a></div></div><divclass="public anchor"id="var-format-stats"><h3>format-stats</h3><divclass="usage"><code>(format-stats stats & [sort-field])</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L184">view source</a></div></div><divclass="public anchor"id="var-fq-keyword"><h3>fq-keyword</h3><h4class="type">macro</h4><divclass="usage"><code>(fq-keyword id)</code></div><divclass="doc"><preclass="plaintext">Returns namespaced keyword for given id.
</pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L10">view source</a></div></div><divclass="public anchor"id="var-merge-times.3Estats.21"><h3>merge-times>stats!</h3><divclass="usage"><code>(merge-times>stats!)</code><code>(merge-times>stats! id)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L129">view source</a></div></div><divclass="public anchor"id="var-p"><h3>p</h3><h4class="type">macro</h4><divclass="usage"><code>(p id & body)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L45">view source</a></div></div><divclass="public anchor"id="var-p*"><h3>p*</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L60">view source</a></div></div><divclass="public anchor"id="var-profile"><h3>profile</h3><h4class="type">macro</h4><divclass="usage"><code>(profile level id & body)</code></div><divclass="doc"><preclass="plaintext">When logging is enabled, executes named body with profiling enabled. Body
forms wrapped in (pspy) will be timed and time stats logged. Always returns
body's result.
Note that logging appenders will receive both a formatted profiling string AND
the raw profiling stats under a special :profiling-stats key (useful for
queryable db logging).</pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L77">view source</a></div></div><divclass="public anchor"id="var-pspy"><h3>pspy</h3><h4class="type">macro</h4><divclass="usage"><code>(pspy id & body)</code></div><divclass="doc"><preclass="plaintext">Profile spy. When in the context of a *pdata* binding, records execution time
of named body. Always returns the body's result.</pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L30">view source</a></div></div><divclass="public anchor"id="var-pspy*"><h3>pspy*</h3><divclass="usage"></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L49">view source</a></div></div><divclass="public anchor"id="var-sampling-profile"><h3>sampling-profile</h3><h4class="type">macro</h4><divclass="usage"><code>(sampling-profile level probability id & body)</code></div><divclass="doc"><preclass="plaintext">Like `profile`, but only enables profiling with given probability.
</pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L93">view source</a></div></div><divclass="public anchor"id="var-with-pdata"><h3>with-pdata</h3><h4class="type">macro</h4><divclass="usage"><code>(with-pdata level & body)</code></div><divclass="doc"><preclass="plaintext"></pre></div><divclass="src-link"><ahref="https://github.com/ptaoussanis/timbre/blob/master/src/taoensso/timbre/profiling.clj#L70">view source</a></div></div></div></body></html>