Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Garbage collection in OCaml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: David McClain <dmcclain@a...>
Subject: Garbage collection in OCaml

I have a long running analysis program written in compiled OCaml (ocamlopt).
If I let it run without interference it gradually allocates more and more
memory until the system swap space is exhausted. At that point the program
bombs off with an "out of memory" errror - probably generated by the OCaml
array management routines.

OTOH, I found by tinkering that placing a Gc.compact() in a periodically
performed place, I manage to keep the entire system running within about 70
MBytes. (My machines all have 256 MB RAM or more).

I have found that placing a Gc.full_major() does virtually nothing to
prevent the exhaustion of memory, although it slows it down ever so

The program was compiled to run with the default GC settings (whatever those
are). That is to say, I did nothing to configure the GC system at program

Is this behavior normal? Must I plant strategic Gc.compact() in my code? I
would have thought the GC would be more self monitoring.  Your comments are
most welcome, even if they are critical!


David McClain, Sr. Scientist
Raytheon Missile Systems Co.
Tucson, AZ