Dear all

I am developing a graph rewriting algorithm which operates on large graphs. Because of the large data structure the GC becomes quite inefficient for two reasons that I am inferring: 
1/ there is no correlation between the time of allocation of an object and its likelihood to be garbage collected.
2/ even when there is nothing to collect, I guess that the GC is still inspecting the heap.

Point 1 is inducing some memory leak and point 2 is just inefficient. I think I took care of point 1 by using my own allocation heap (so there is nothing to collect for the GC). But to take care of point 2 I guess I need to tell the GC that my heap (an extensible array) should not be inspected.

As far as I understand there is a module Ancient which I can use to tell the GC to ignore my array but, if I understand well, it would only work if I use my array in a read only fashion. 
I also thought I could use Bigarray, but it seems it can only be used for basic array types.

To summarize my question: is there a (reasonable) way to implement an 'a array out of the ocaml heap ? 

Thanks!
JK