rolling mean的性能对比,DolphinDB比Orca慢?
有个细节想请教下,我想测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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Orca采用了惰性求值策略,某些操作不会立刻在服务端计算,而是转化成一个中间表达式,直到真正需要时才发生计算。需要触发计算时,用户应调用compute函数。df['Volume'].rolling(1000).mean()实际没有计算,要触发计算,须修改如下: