OCaml library : Gc.Memprof

`sig
type t
type allocation_source = Normal | Marshal | Custom | Map_file
val string_of_allocation_source : Gc.Memprof.allocation_source -> string
type allocation = private {
n_samples : int;
size : int;
source : Gc.Memprof.allocation_source;
callstack : Stdlib.Printexc.raw_backtrace;
}
type ('minor, 'major) tracker = {
alloc_minor : Gc.Memprof.allocation -> 'minor option;
alloc_major : Gc.Memprof.allocation -> 'major option;
promote : 'minor -> 'major option;
dealloc_minor : 'minor -> unit;
dealloc_major : 'major -> unit;
}
val null_tracker : ('minor, 'major) Gc.Memprof.tracker
val start :
sampling_rate:float ->
?callstack_size:int ->
('minor, 'major) Gc.Memprof.tracker -> Gc.Memprof.t
val stop : unit -> unit
val discard : Gc.Memprof.t -> unit
end`