package ecaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=20de8c606f4d0aea48c9353d1202c388fdd5d9faecb22799e46b5e2f2f8a4458
md5=4f58053a70cb5be73c8d98abacaab3a9
doc/ecaml.nested_profile/Nested_profile/Profile/index.html
Module Nested_profile.Profile
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 -- barmodule Sync_or_async : sig ... endA Sync_or_async.t specifies whether the computation being profiled is synchronous or asynchronous.
val profile :
?hide_if_less_than:Core_kernel.Time_ns.Span.t ->
'a Sync_or_async.t ->
Core_kernel.Sexp.t Core_kernel.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
val approximate_line_length_limit : int Core_kernel.refval should_profile : bool Core_kernel.refval hide_if_less_than : Core_kernel.Time_ns.Span.t Core_kernel.refval hide_top_level_if_less_than : Core_kernel.Time_ns.Span.t Core_kernel.refval sexp_of_time_ns :
(Core_kernel.Time_ns.t -> Core_kernel.Sexp.t) Core_kernel.refval tag_frames_with :
(unit -> Core_kernel.Sexp.t option) option Core_kernel.refval output_profile : (string -> unit) Core_kernel.refprofile calls output_profile to display the profile to the user. It is print_string by default.
module Start_location : sig ... endval start_location : Start_location.t Core_kernel.refstart_location specifies where in a profile the start time is rendered.
val backtrace : unit -> Core_kernel.Sexp.t list optionReturn the current stack of profile messages, sorted inner profile frames first. Returns None if should_profile is false.
module Private : sig ... end