Dokumentacja na module Bigarray jest nieco niejasna. Stwierdza, że celem tablic w tym module jest trzymanie "dużych tablic", ale tak naprawdę nie definiuje, co to znaczy "duża tablica". Kiedy powinienem używać Bigarraya na zwykłej tablicy? Czy istnieje pewna liczba elementów, poza którymi powinienem po prostu użyć Bigarray? Czy to w tysiącach? Miliony? Miliardy?Kiedy należy korzystać z Bigarray i dlaczego?
A co sprawia, że Bigarray lepiej radzi sobie z dużymi tablicami? Co sprawia, że regularna tablica lepiej radzi sobie z ... nie-dużymi tablicami?
Możliwe, że definiuje on "dużą tablicę" jako "rzadką macierz", choć zupełnie nie znam się na OCaml, więc mógłbym tu zostać. –
Nawet w takim przypadku, dlaczego potrzebowałbyś innej struktury danych? –
Tablica rzadka nie musi (koniecznie) zawierać spacji w pamięci ani nawet wskaźnika do 'null' dla każdego elementu w tablicy. Jeśli masz w swoim pytaniu wachlarz 2 miliardów elementów, to jest to około 8GB wartości, tylko w wskaźnikach. Jeśli jednak w tablicy znajduje się tylko 5 elementów (przypuszczalnie w wysokich indeksach), to przestrzeń pamięciowa musi tylko zawierać 5 wskaźników i zajmować garść bajtów. –