Browse thread
[Caml-list] heap profiling
[
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: | Christian Lindig <lindig@e...> |
| Subject: | Re: [Caml-list] heap profiling |
On Wed, Jul 09, 2003 at 12:10:52PM +0200, Fabrice Le Fessant wrote: > I would like to know if anybody has implemented some kind of > memory/heap usage profiling for the current version (3.06) of Ocaml, > [..] Anybody plans to implement such a tool ? No plans, but some thoughts. The time between the last use of a block and its collection by the GC is called drag time. High drag times are typical for leaked memory. To detect leaked blocks, a block is time stamped when it is read or written, and the GC checks the drag time when it finds the block dead. Blocks whose drag time exceeds a threshold are logged. Time stamps and source code locations require additional room in blocks. They main difficulty is to detect that a block is garbage such that its drag time can be observed. I do know that custom blocks can have finalizers and therefore at least they are individually identified as garbage. I don't know whether this is true for other values in the OCaml GC. When the GC only scans the live data it may be difficult to detect garbage block by block. Any GC expert around to answer this question? Does OCaml free all memory before exit? This would be useful to find the memory that is otherwise never collected. -- Christian ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners