La documentation sur le module Bigarray est quelque peu vague. Il indique que le but des tableaux dans ce module est de contenir de "grands tableaux", mais il ne définit pas vraiment ce que cela signifie par "grand tableau". Quand devrais-je utiliser un Bigarray sur un tableau régulier? Y a-t-il un certain nombre d'éléments au-delà desquels je devrais utiliser un Bigarray? Est-ce dans les milliers? Des millions? Des milliards?Quand dois-je utiliser un Bigarray et pourquoi?
Et qu'est-ce qui rend un Bigarray meilleur dans le traitement des grandes baies? Qu'est-ce qui fait qu'un tableau régulier est mieux adapté aux tableaux non-grands?
Il se peut qu'il définisse un «grand tableau» comme un «tableau fragmenté», bien que j'ignore complètement OCaml, donc je pourrais être ici au large. –
Même dans ce cas, pourquoi auriez-vous besoin d'une structure de données différente? –
Un tableau clairsemé ne contient pas (nécessairement) un espace en mémoire, ni même un pointeur sur 'null' pour chaque élément du tableau. Si vous avez un tableau de 2 milliards d'éléments comme vous le suggérez dans votre question, cela représente une valeur de 8 Go, purement indicative. Si vous ne disposez que de 5 éléments dans le tableau (vraisemblablement à des index élevés), alors votre espace de stockage ne doit contenir que 5 pointeurs et occuper une poignée d'octets. –