dolphindb新创建的空表为什么会占用内存?

我用下面的代码创建了一个空表,然后查看这个表占用的内存,为什么没有数据的空表也会占用内存?

colName = ["time", "x"]
colType = ["timestamp", "int"]
t = table(1000000:0, colName, colType);

pnodeRun(objs) //查询非共享变量占用内存情况

返回:

attachments-2021-05-XA6PAJ6Y60a77793e3d44.png

请先 登录 后评论

1 个回答

Jax Wu

DolphinDB中的table函数可以创建表。

table(capacity:size, colNames, colTypes)

capacity是正整数,表示建表时系统为该表分配的内存(以记录数为单位)。当记录数超过capacity时,系统会首先会分配capacity1.2~2倍的新的内存空间,然后复制数据到新的内存空间,最后释放原来的内存。对于规模较大的表,此类操作的内存占用会很高。因此,建议创建内存表时预先分配一个合理的capacity。

执行下面的代码:

colName = ["time", "x"]
colType = ["timestamp", "int"]
t1 = table(1000000:0, colName, colType);
t2 = table(100:0, colName, colType);
t3 = table(colName, colType);

pnodeRun(objs)

返回:
attachments-2021-06-gsDoc53D60c17ae50b6cc.png
占用内存大小和创建表时设置的capacity有关。

请先 登录 后评论
  • 1 关注
  • 0 收藏,887 浏览
  • chenweijian 提出于 2021-05-21 17:04

相似问题