package irmin-layers

  1. Overview
  2. Docs

Profiling of Freeze

Control Flow of the Freeze Thread

Most of the functions here should be called from under a single mutex lock.

val freeze_start : Mtime.t -> string -> unit

Signals the start of a new freeze given the time at which the freeze process started and the name given to the initial code section.

val freeze_section : string -> unit

Signals that the freeze is entering a specific section of the code.

val freeze_stop : unit -> unit

Signals the end of an ongoing freeze freeze.

val freeze_yield : unit -> unit

Signals that the freeze is cooperatively yielding to other threads.

val freeze_yield_end : unit -> unit

Signals that the freeze is given back the control.

Incrementations of Counters

val copy_contents : unit -> unit

Increments the number of copied contents for the current freeze.

val copy_nodes : unit -> unit

Increments the number of copied nodes for the current freeze.

val copy_commits : unit -> unit

Increments the number of copied commits for the current freeze.

val copy_branches : unit -> unit

Increments the number of copied branches for the current freeze.

val add : unit -> unit

Increment the number of objects added by main thread.

val skip_test : bool -> unit

Increment the number time we wondered if an entry was present at the destination during a graph traversal for the current freeze.

val copy_newies_loop : unit -> unit

Increment the number of iterations of newies copy.

Observation

val get_add_count : unit -> int
val get_copied_commits_count : unit -> int
val get_copied_branches_count : unit -> int
val get_copied_contents_count : unit -> int
val get_copied_nodes_count : unit -> int
val get_freeze_count : unit -> int
val pp_latest : Format.formatter -> unit

Misc.

val reset_stats : unit -> unit