Browse thread
[Caml-list] Stopping a value from getting GC'd
[
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: | Alain Frisch <Alain.Frisch@i...> |
| Subject: | Re: [Caml-list] Cost of register_global_root |
Nathaniel Gray wrote: > One thing that the FM doesn't mention is how expensive it is to > register a global root. Can I register thousands of them or will > there be performance problems? The runtime system stores the global roots in a skip list. One should expect probabilistic O(log n) complexity with a small constant for each insertion and deletion, where n is the number of already registered global roots. Another option is to manage the roots yourself (e.g. you put them in an array and store indexes into this array in your custom data structure). This might be necessary if the custom blocks are under the control of another memory management system which can moves blocks around. -- Alain