rolling mean的性能对比,DolphinDB比Orca慢?

发布于 2022-09-12 04:16:11 字数 522 浏览 20 评论 0

有个细节想请教下,我想测rolling mean的速度对比。在orca上,直接 df['x'].rolling(120).mean(), 运行时间是0.2ms,相关代码如下:

df = orca.read_table("dfs://xxx", "table_name")
for i in range(1000):
    vol_avg = df['Volume'].rolling(1000).mean()

然后在dolphindb database GUI上执行select mavg(x, 120) from table_name where xxx,反而是30多ms。就是先读到内存表,再对其rolling mean,如类似下面代码:

t=select *  from table_name where xxx    
timer  select mavg(x, 120) from t

这样执行稍微好一点点, 但也要10多毫秒。这DolphinDB GUI比orca接口慢这么多,是不是哪里有问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

筑梦 2022-09-19 04:16:11

Orca采用了惰性求值策略,某些操作不会立刻在服务端计算,而是转化成一个中间表达式,直到真正需要时才发生计算。需要触发计算时,用户应调用compute函数。df['Volume'].rolling(1000).mean()实际没有计算,要触发计算,须修改如下:

df['Volume'].rolling(1000).mean().compute()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文