arrays - dolphindb中的Regular数组和Big数组有什么区别?
问题描述
在 dolphindb 的手册中,构建它们的函数看起来很熟悉:
x = bigarray(int,10,10000000,1);
x = array(int,10,10000000,1);
我也可以构建一个相同长度的数组....但我很感兴趣。它们之间是否存在一些差异(功能、操作)?
解决方案
在 DolphinDB 中,大数组是专门为大数据分析的高级用户设计的。常规数组使用连续内存。如果没有足够的连续内存,就会发生内存不足的异常。一个大数组由许多小内存块组成,而不是一个大内存块。因此大数组有助于缓解内存碎片问题。但是,对于某些操作,这可能会带来轻微的性能损失。对于大多数不需要担心内存碎片问题的用户来说,使用常规数组而不是大数组。
大阵列的最小大小或容量为 16 MB。用户可以使用函数 bigarray 声明一个大数组。常规数组上的函数和操作也适用于大数组。
当我们调用数组函数时,如果没有足够的连续内存块可用,或者数组占用的内存超过了某个阈值(默认阈值为512MB),系统会改为创建一个大数组。我们可以通过将属性 regularArrayMemoryLimit 设置为不同的值来覆盖配置文件中的默认阈值。
推荐阅读
- git - 在 WDCloud NAS 上克隆 git 存储库失败/失败 `git init`
- docker - “本地” Step Functions 状态机在主机上调用 moto_server 时出现 404 错误
- matlab - Matlab用绘图和动态值画线
- python - 使用 Pylot 绘制的表格不清楚
- python - Python将base64解码为图片不起作用
- r - `*tmp*`[[j]] 中的错误:下标超出范围
- excel - VBA:保存电子表格
- python - Python:创建一个具有预定长度的元组
- python - 在 Pandas 中合并具有多个条件的两个数据框
- angular - HTML 模板中空值合并运算符的 Angular 等效项