diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2001-02-05 14:59:24 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2001-02-05 14:59:24 +0000 |
commit | dcc3b0ce03b430103b47a83910e625b388c03c15 (patch) | |
tree | 59779c73d4f237dcf6c176d47f459083dad674de /stdlib/gc.mli | |
parent | 7a1d2f70addf4d0c8e8a2f9995b62aca40aef90a (diff) | |
download | ocaml-dcc3b0ce03b430103b47a83910e625b388c03c15.tar.gz |
gc.ml, gc.mli: compteurs flottants
arg.ml: affichage option -help
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3399 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib/gc.mli')
-rw-r--r-- | stdlib/gc.mli | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/stdlib/gc.mli b/stdlib/gc.mli index 44987aac80..8876d47451 100644 --- a/stdlib/gc.mli +++ b/stdlib/gc.mli @@ -15,9 +15,9 @@ (* Module [Gc]: memory management control and statistics; finalised values *) type stat = { - minor_words : int; - promoted_words : int; - major_words : int; + minor_words : float; + promoted_words : float; + major_words : float; minor_collections : int; major_collections : int; heap_words : int; @@ -28,7 +28,7 @@ type stat = { free_blocks : int; largest_free : int; fragments : int; - compactions : int + compactions : int; } (* The memory management counters are returned in a [stat] record. The fields of this record are: @@ -71,7 +71,7 @@ type control = { mutable space_overhead : int; mutable verbose : int; mutable max_overhead : int; - mutable stack_limit : int + mutable stack_limit : int; } (* The GC parameters are given as a [control] record. The fields are: @@ -114,7 +114,7 @@ type control = { external stat : unit -> stat = "gc_stat" (* Return the current values of the memory management counters in a [stat] record. *) -external counters : unit -> (int * int * int) = "gc_counters" +external counters : unit -> (float * float * float) = "gc_counters" (* Return [(minor_words, promoted_words, major_words)]. Much faster than [stat]. *) external get : unit -> control = "gc_get" @@ -138,10 +138,10 @@ val print_stat : out_channel -> unit (* Print the current values of the memory management counters (in human-readable form) into the channel argument. *) -val allocated_bytes : unit -> int +val allocated_bytes : unit -> float (* Return the total number of bytes allocated since the program was - started. Warning: on 32-bit machines, this counter can easily - overflow and roll over. *) + started. It is returned as a [float] to avoid overflow problems + with [int] on 32-bit machines. *) val finalise : ('a -> unit) -> 'a -> unit;; @@ -185,3 +185,21 @@ val finalise : ('a -> unit) -> 'a -> unit;; stored into arrays, so they can be finalised and collected while another copy is still in use by the program. *) + + +type alarm;; + (* An alarm is a piece of data that calls a user function at the end of + each major GC cycle. The following functions are provided to create + and delete alarms. + *) + +val create_alarm : (unit -> unit) -> alarm;; + (* [create_alarm f] will arrange for f to be called at the end of each + major GC cycle. 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. + *) |