[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | David McClain <dmcclain@a...> |
| Subject: | Garbage collection in OCaml |
Hi, 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 slightly. 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 startup. 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! Cheers, David McClain, Sr. Scientist Raytheon Missile Systems Co. Tucson, AZ