已开启
probe_inner #12
QLiangong创建于 5月22日
5月22日 修改了issue 的描述
junlai-coder
5月22日 评论:
5月22日 评论:
应该以软件性能优化的视角去提交issue,最终收益可以是体现ARM、X86各是多少,背景不应该是ARM和X86存在差距


5月22日 修改了issue 的描述
5月22日 修改了issue 的描述
5月22日 修改了issue 的描述
5月25日 修改了issue 的描述
应该以软件性能优化的视角去提交issue,最终收益可以是体现ARM、X86各是多少,背景不应该是ARM和X86存在差距


描述(Description)
Daft 的
probe_inner(hash join 核心探测函数) 存在性能优化空间。当前实现存在以下瓶颈:probe_indices返回嵌套迭代器,需要多层enumerate和flatten操作GrowableRecordBatch使用 trait 对不同数据类型进行动态分发extend,当 fanout 较大时调用次数非常多复现(Reproduction)
使用 TPC-H 基准测试评估 Daft hash join 性能:
跨平台性能比:0.7953 → 0.8052,提升约 1.24%
期望结果(Expected behavior)
优化
probe_inner函数,减少迭代器开销和动态分发开销,提升 hash join 在各平台上的性能。测试环境(Environment)
修复建议(Suggested Fix)
probe_indices_vec方法:将嵌套迭代器展开为扁平的三元组向量(probe_idx, rb_idx, row_idx)take批处理替代extend逐元素扩展:按 RecordBatch 分桶后一次性 takematches_len和fanout判断使用 extend 还是 take涉及文件:
严重程度(Severity)