Module Core_profiler__Offline
Running a program with offline metrics collection causes it to write out a data file on exit. This data file is typically called profiler.dat
. The collected metrics can then be analyzed using profiler-tool.exe
.
I don't trust these numbers, but here they are:
┌──────────────────────────────────────────────────────┬──────────┬────────────┐ │ Name │ Time/Run │ Percentage │ ├──────────────────────────────────────────────────────┼──────────┼────────────┤ │ [offline.ml:Timer] at │ 18.29ns │ 10.34% │ │ [offline.ml:Probe] at │ 21.92ns │ 12.38% │ │ [offline.ml:Delta_timer] start_async │ 10.94ns │ 6.18% │ │ [offline.ml:Delta_timer] stop_async │ 22.78ns │ 12.87% │ │ [offline.ml:Delta_timer] start │ 11.23ns │ 6.34% │ │ [offline.ml:Delta_timer] stop │ 22.84ns │ 12.91% │ │ [offline.ml:Delta_timer.wrap_sync] nop │ 2.45ns │ 1.38% │ │ [offline.ml:Delta_timer.wrap_sync] wrapped_nop │ 40.59ns │ 22.93% │ │ [offline.ml:Delta_timer.wrap_sync] count_256 │ 143.57ns │ 81.12% │ │ [offline.ml:Delta_timer.wrap_sync] wrapped_count_256 │ 176.99ns │ 100.00% │ │ [offline.ml:Delta_probe] start │ 2.47ns │ 1.40% │ │ [offline.ml:Delta_probe] stop │ 22.11ns │ 12.49% │ │ [offline.ml:Delta_probe] start_async │ 2.44ns │ 1.38% │ │ [offline.ml:Delta_probe] stop_async │ 22.20ns │ 12.54% │ └──────────────────────────────────────────────────────┴──────────┴────────────┘
module Profiler : sig ... end
module Timer : Core_profiler_disabled.Intf.Probe with type 'a create_args := 'a Core_profiler_disabled.Intf.timer_create_args and type 'a record_args := 'a Core_profiler_disabled.Intf.timer_record_args and type t = private int
A
Timer
contains only a time stamp and no extra information; however, it is useful because (inOffline
) the current time is recorded when measurements are made.
module Probe : Core_profiler_disabled.Intf.Probe with type 'a create_args := 'a Core_profiler_disabled.Intf.probe_create_args and type 'a record_args := 'a Core_profiler_disabled.Intf.probe_record_args and type t = private int
A
Probe
records some integer value that is passed toat
along with a timestamp.
module Delta_probe : sig ... end with type state = private int
Delta_probe
is an optimized two-probe group to track changes to some counter.
module Delta_timer : sig ... end with type state = private Core.Time_ns.t
Delta_timer
is an optimized two-probe group to track time differences between calls tostart
andstop
.