Browse thread
Questions on replacing finalizers and memory footprints
[
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: | Christophe Raffalli <christophe.raffalli@u...> |
| Subject: | Re: [Caml-list] Questions on replacing finalizers and memory footprints |
Jean-Christophe Filliātre a écrit : > Xavier Leroy wrote: > >>> Also, is there a simple way to implement a function (perhaps using >>> Obj.magic) which will walk a (possibly circular) network of tuples, >>> arrays, variadic entities and lists, and return the total number of >>> bytes used up by that structure? I see that this should be possible >>> in principle with the present implementation of the runtime if one >>> could get some basic information about the internal type of an >>> array. >>> >> Jean-Christophe Filliātre's "size" library does exactly this: >> >> http://www.lri.fr/~filliatr/software.en.html >> > > Indeed. However, note that it uses internally a hash table to store > blocks already considered (in order to correctly account for sharing), > and thus it is potentially incorrect if the GC moves some blocks during > the count, for instance during a resizing of the hash table (which > triggers the GC). I don't know how to avoid this issue; any help is welcome. > > Write size in C, marshaling is written with a hashtbl in C probably for that same reason ... Christophe