Private implementation details.
profiled -> [<result> <derefable-and-mergeable-pstats>].
Profiling consists of:
Basic implementation:
Private implementation details.
`profiled` -> [<result> <derefable-and-mergeable-pstats>].
Profiling consists of:
1. State init ; On thread
2. Capture ; On thread
3. State deref ; On thread
4. ?Merging ; Off thread, on demand (deferred cost)
5. ?Realization ; Off thread, on demand (deferred cost)
Basic implementation:
- Capture [<id> <elapsed>]s into single mutable acc
- May compact acc to id-times, {<id> (<time> ...)}
- May compact id-times to id-sstats, {<id> (<stats/sstats> ...)}
- Merge pours (read-only) acc0 + acc1 into id-times
- May compact id-times to id-sstats, {<id> (<stats/sstats> ...)}
- Realization:
- Generates {<id> <stats/sstats>} from id-times.
- Merges with id-sstats.(capture-time! pd id ns-elapsed)(handle! m)(merge-pstats ps0 ps1)(merge-pstats nmax ps0 ps1)Compacting merge
Compacting merge
(new-pdata-dynamic nmax)(new-pdata-local nmax)(pdata-local-get)(pdata-local-pop)(pdata-local-push v)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 |