В чем разница между регулярным массивом и большим массивом в dolphindb? - PullRequest
0 голосов
/ 15 июня 2019

В руководстве dolphindb функции для их построения выглядят знакомо:

x = bigarray(int,10,10000000,1);
x = array(int,10,10000000,1);  

Я мог бы также создать массив той же длины .... Но я в этом заинтересован. Есть ли в них некоторые различия (функции, операции)?

1 Ответ

0 голосов
/ 21 июня 2019

В DolphinDB большие массивы специально разработаны для опытных пользователей в анализе больших данных. Регулярные массивы используют непрерывную память. Если не хватает непрерывной памяти, возникнет исключение нехватки памяти. Большой массив состоит из множества маленьких блоков памяти вместо одного большого блока памяти. Поэтому большие массивы помогают облегчить проблему фрагментации памяти. Это, однако, может привести к небольшому снижению производительности для определенных операций. Для большинства пользователей, которым не нужно беспокоиться о проблеме фрагментации памяти, используйте обычные массивы вместо больших.

Минимальный размер или емкость большого массива составляет 16 МБ. Пользователи могут объявить большой массив с помощью функции bigarray. Функции и операции с обычными массивами также применимы к большим массивам.

Когда мы вызываем функцию массива, если недостаточно доступного блока непрерывной памяти или если память, занятая массивом, превышает определенный порог (порог по умолчанию составляет 512 МБ), система вместо этого создаст большой массив. Мы можем переопределить пороговое значение по умолчанию в файле конфигурации, установив для атрибута normalArrayMemoryLimit другое значение.

...