I just would like to add a pro about bigarray
, due to the fact that a bigarray
can not move in your heap, we have the ability to release the runtime lock for some computations such as hash algorithms as digestif
does:
About MirageOS, we currently mostly use cstruct
which has an other difference with bigarray
, the underlying record. Such design is to be more efficient when we do a sub
operation as @ivg said here: Working with a huge data chunks - #10 by ivg
However, the question to choose Bytes.t
or Cstruct.t
(or Bigstring.t
) is a bit hard and it really depends on your context - and, as @xavierleroy said :
Mirage people don’t seem to care, as they allocate small bigarrays like crazy.