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 (in Offline) 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 to at 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 to start and stop.