Hi William, this can be made working, and there is already a lot of support in Ocamlnet (module Netsys_mem, espeically init_value). I'm now using this all the time for populating shared memory blocks (which need to be outside the ocaml heap) with normal ocaml values.
In Ocamlnet I'm using simply a bigarray for keeping the reference to the off-heap memory area (remember, bigarrays are just pointers to C arrays). This allows it to program the whole algorithm accessing such values in Ocaml. A warning though: Experience shows also that this type of programming is very error-prone, as you always have to take the memory representation of ocaml values into account. Gerd > Dear list, > > We are building a cache in ocaml and we're wondering if it would make > sense > to store ocaml values outside the reach of the gc. (gc on a 20GB cache > hangs the process for a second or so). > > To run some experiments, we wrote a small library ( > https://github.com/besport/ocaml-everlasting) that exposes two functions, > get and set. > > When inserting a value, we copy recursively the blocs outside of the reach > of the gc (and put the resulting value in some C array). When getting the > value, we simply pass the pointer to the copied value to the ocaml code > (the structure is still coherent and the value is directly usable). We > also > wrote an "update" function that compare a new value with the existing > value > in cache, to avoid unnecessary memory allocation/deallocation. > > It does not seems very stable though, but I don't know if it is a bug in > the update function or simply because this approach is not reasonable. Do > you have any thoughts? Is there any clever way to build a large cache in > an > ocaml app ? > > Thanks in advance for any tips! > > Best > > William > > > -- > William Le Ferrand > > Mobile : (+1) (415) 683-1484 > Web : http://williamleferrand.github.com/ > <http://www.linkedin.com/in/williamleferrand> > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > > -- Gerd Stolpmann, Darmstadt, Germany [email protected] Creator of GODI and camlcity.org. Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de *** Searching for new projects! Need consulting for system *** programming in Ocaml? Gerd Stolpmann can help you. -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
