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: | forum@x... |
| Subject: | Re: [Caml-list] Questions on replacing finalizers and memory footprints |
Selon Jean-Christophe Filliātre <Jean-Christophe.Filliatre@lri.fr>: > 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. Sorry for the noise but doesn't this mean that the "size" function may not terminate ?