aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml8
-rw-r--r--lib/util.mli5
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index b5611c50b1..a518399937 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -561,4 +561,12 @@ let size_w = Size.size_w
let size_b = Size.size_b
let size_kb = Size.size_kb
+(*s Total size of the allocated ocaml heap. *)
+let heap_size () =
+ let stat = Gc.stat ()
+ and control = Gc.get () in
+ let max_words_total = stat.Gc.heap_words + control.Gc.minor_heap_size in
+ (max_words_total * Sys.word_size / 8)
+
+let heap_size_kb () = (heap_size () + 1023) / 1024
diff --git a/lib/util.mli b/lib/util.mli
index 94d1d44f84..7d526aa62a 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -164,3 +164,8 @@ val prvect_with_sep :
val size_w : 'a -> int
val size_b : 'a -> int
val size_kb : 'a -> int
+
+(*s Total size of the allocated ocaml heap. *)
+
+val heap_size : unit -> int
+val heap_size_kb : unit -> int