Browse thread
Strange performance bug
[
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: | Brighten Godfrey <pbg@c...> |
| Subject: | Re: [Caml-list] Strange performance bug |
On Apr 29, 2009, at 12:38 PM, Markus Mottl wrote: > On Wed, Apr 29, 2009 at 15:19, Brighten Godfrey > <pbg@cs.berkeley.edu> wrote: >> You seem to have solved my problem. But out of curiosity: Do you >> know how >> the GC settings in the Str library differ from PCRE's, and why? >> Why does >> PCRE need to explicitly trigger GCs at all? > > Str regular expressions are pure OCaml-values, whereas PCRE regexps > are allocated on the C-heap. Since C-heap values need to be > deallocated explicitly, a finalizer has to be installed that does the > job if the OCaml-value is not reachable anymore. The OCaml-runtime > needs hints about how large these C-values are. Otherwise it may not > scan the OCaml-heap aggressively enough, leaving a lot of those > C-values floating around and eating up your memory. > > Right now the PCRE-library guarantees that not more than 500 regular > expressions will float around at any one time. This can lead to > considerable slowdowns if your OCaml-heap is large and you allocate > regular expressions at very high rates. Got it. Thank you all for your replies! ~Brighten