module Gc: Core_gc
module Stat:sig
..end
typestat =
Stat.t
stat
record.
The total amount of memory allocated by the program since it was started
is (in words) minor_words + major_words - promoted_words
. Multiply by
the word size (4 on a 32-bit machine, 8 on a 64-bit machine) to get
the number of bytes.
module Control:sig
..end
typecontrol =
Control.t
control
record.
Note that these parameters can also be initialised
by setting the OCAMLRUNPARAM environment variable.
See the documentation of ocamlrun.val stat : unit -> stat
stat
record. This function examines every heap block to get the
statistics.val quick_stat : unit -> stat
stat
except that live_words
, live_blocks
, free_words
,
free_blocks
, largest_free
, and fragments
are set to 0. This
function is much faster than stat
because it does not need to go
through the heap.val counters : unit -> float * float * float
(minor_words, promoted_words, major_words)
. This function
is as fast at quick_stat
.val minor_words : unit -> int
minor_words
. This function is designed to retrieve allocation stats fast
without causing any allocations of its own. Consequently, on 32bit machines the int
may overflow.val major_words : unit -> int
major_words
. Also, see comment for minor_words
.val promoted_words : unit -> int
promoted_words
. Also, see comment for minor_words
.val get : unit -> control
control
record.val set : control -> unit
set r
changes the GC parameters according to the control
record r
.
The normal usage is:
Gc.set { (Gc.get()) with Gc.Control.verbose = 0x00d }
val minor : unit -> unit
val major_slice : int -> int
val major : unit -> unit
val full_major : unit -> unit
val compact : unit -> unit
val print_stat : Pervasives.out_channel -> unit
val allocated_bytes : unit -> float
float
to avoid overflow problems
with int
on 32-bit machines.type
alarm
val create_alarm : (unit -> unit) -> alarm
create_alarm f
will arrange for f
to be called at the end of each
major GC cycle, starting with the current cycle or the next one.
A value of type alarm
is returned that you can
use to call delete_alarm
.val delete_alarm : alarm -> unit
delete_alarm a
will stop the calls to the function associated
to a
. Calling delete_alarm a
again has no effect.val tune : ?logger:(string -> unit) ->
?minor_heap_size:int ->
?major_heap_increment:int ->
?space_overhead:int ->
?verbose:int ->
?max_overhead:int ->
?stack_limit:int -> ?allocation_policy:int -> unit -> unit