The main interest of bigarrays is that they are allocated using malloc
in the C heap and so are not moved by the GC. This means they can be passed to C functions safely. On the other hand, malloc
was not designed to sustain an allocation regime like that of OCaml (which allocates small objects at a fast rate). When you use bigarrays for small structures which are allocated at a high rate that can lead to fragmentation problems and high memory usage (precisely because they cannot be moved by the GC!).
Cheers,
Nicolás