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

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

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

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

返回:
image

阅读 1.8k
1 个回答

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)

返回:
image
占用内存大小和创建表时设置的capacity有关。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
101 新手上路
子站问答
访问
宣传栏