To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
-
core_profiler
-
-
core_profiler.disabled
-
core_profiler.offline_tool
-
Library
Module
Module type
Parameter
Class
Class type
The goal of Short_header
is to pack a Timer.record
into one word (we want to write an integer number of words for alignment, and don't want to pay for the size or time of writing a second word if we don't have to).
A short header "contains" an Probe_id.t
and a Time_ns.t
. A short header is a single word / integer; we have 63 bits to play with. The 9 most significant bits contain Probe_id.to_int_exn
; the remaining 54 bits contain a time, stored as a number of nanoseconds from some Profiler_epoch.t
(the epoch is written into the header; see Writer.write_epoch
).
2 ** 54 nanoseconds is approximately 208 days. The epoch is set to equal a little before now when OCaml starts up, so the header should continue to work for ~208 days after that.
Packs Probe_id.t
and Time_ns.t
into a single int
.
val max_time_diff : Core.Time_ns.Span.t
val pack_exn :
Core_profiler.Profiler_epoch.t ->
Core_profiler.Probe_id.t ->
Core.Time_ns.t ->
int
val pack_unsafe :
Core_profiler.Profiler_epoch.t ->
Core_profiler.Probe_id.t ->
Core.Time_ns.t ->
int
val unpack_id : int -> Core_profiler.Probe_id.t
val unpack_time : Core_profiler.Profiler_epoch.t -> int -> Core.Time_ns.t
val unpack :
Core_profiler.Profiler_epoch.t ->
int ->
Core_profiler.Probe_id.t * Core.Time_ns.t