gpt4 book ai didi

kdb - 在不使用全局变量的情况下附加数据

转载 作者:行者123 更新时间:2023-12-01 19:35:35 24 4
gpt4 key购买 nike

通常我必须使用全局变量结果联合连接来附加一些数据。

res();
{[someVar]
res,:: select x from y where (constraints related to someVar)
} each list of someVars

这不是非常实用的风格。有没有不同的方法来实现这个不带全局变量的方法?

最佳答案

几点:

  1. 当您进行就地追加时(又名 a,:b 而不是 a::a,b).在这种情况下,单个将起作用,因为就地附加在全局上下文中起作用。

  2. 您忽略了这样一个事实,即就地追加非常节省内存,即使它不是“功能性的”并且使用全局上下文。例如:

    q)\ts t:([]col1:10000000?100j)
    110 134218192

    q)\ts a:{x,select from y}/[t;2 cut ([]col1:til 6)]
    74 268436720

    q)\ts {t,:x} each 2 cut ([]col1:til 6)
    0 1424
    q)a~t
    1b

使用 over (/) 和避免全局变量的迭代方法会创建表的副本,从而使内存使用量增加一倍。就地追加使用很少的内存来获得相同的结果。

因此,最终在某些情况下,拥有全局是值得权衡的,这取决于具体情况。

关于kdb - 在不使用全局变量的情况下附加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50479032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com