package ecaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=d9c6f98e7b0906a7e3d332d1a30fe950b59586b860e4f051348ea854c3ae3434
doc/ecaml.nested_profile/Nested_profile/Profile/index.html
Module Nested_profile.ProfileSource
This is a library for time profiling sequential or Async code.
Wrap interesting places in your code with calls to profile:
open! Nested_profile;;
profile "do_thing" (fun () ->
profile "foo" foo;
profile "bar" bar;
...)Then each top-level call to profile will output a hierarchical display of all profile calls beneath it:
1.284s -- do_thing
209.266ms -- foo
1.074s -- barA Sync_or_async.t specifies whether the computation being profiled is synchronous or asynchronous.
val profile :
?hide_if_less_than:Core.Time_ns.Span.t ->
'a Sync_or_async.t ->
Core.Sexp.t Core.Lazy.t ->
(unit -> 'a) ->
'aprofile sync_or_async message f measures the time taken to run f, and outputs the result. Nested calls to profile are displayed as a tree. Use Async to profile Async code. It is safe to nest calls to profile inside calls to profile Async. profile Async does have some restrictions in order to get valid results:
- a nested call to
profile Asyncmust exit before its parent does - there cannot be multiple sibling calls to
profile Asyncrunning concurrently
am_forcing_message () returns true when profiling is calling force on a message supplied to profile. This is useful if you want to have a sexp_of_t function behave differently when producing messages.
profile calls output_profile to display the profile to the user. It is print_string by default.
start_location specifies where in a profile the start time is rendered.
Return the current stack of profile messages, sorted inner profile frames first. Returns None if should_profile is false.
disown f runs f as though it were at top level, rather than whatever the current context is. In other words, it causes the parent (current) context to disown children created by f. This is useful for background jobs that might outlive their parents, since Nested_profile requires that parents wait for their children.