[
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: | 2010-11-11 (09:08) |
From: | Goswin von Brederlow <goswin-v-b@w...> |
Subject: | Re: [Caml-list] Average cost of the OCaml GC |
Jianzhou Zhao <jianzhou@seas.upenn.edu> writes: > Hi, > > What is the average cost of the OCaml GC? I have a program that calls > 'mark_slice' in 57% of the total execution time, and calls > 'sweep_slice' in 21% of the total time, reported by Callgrind, which > is a profiling tool in Valgrind. 57% and 21% are the 'self cost' --- > the cost of the function itself ('Self Cost'), rather than the cost > including all called functions ('Inclusive Cost'). I guess > 'mark_slice' and 'sweep_slice' are functions from OCaml GC. Are > these numbers normal? Those numbers sound rather high to me. > My program calls both OCaml and C, which passes around C data types in > between. I also doubt if I defined the interface in an 'unefficient' > way that slows down the GC. Are there any rules in mind to make GC > work more efficiently? You can tune some of the GC parameters to suit your use case. Do you allocate custom types from C? In caml_alloc_custom(ops, size, used, max) the used and max do influence the GC how often to run. If you set them wrong you might trigger the GC too often. MfG Goswin