已开启
针对AntiSemiProbeSink - probe_anti_semi_with_bitmap函数进行性能优化 #4
吴磊创建于 4月28日
4月28日 修改标题为 “针对AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数进行性能优化”,原标题为“AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数性能优化”
4月28日 修改标题为 “针对AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数进行性能优化”,原标题为“AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数性能优化”
4月28日 修改标题为 “针对AntiSemiProbeSink - probe_anti_semi_with_bitmap函数进行性能优化”,原标题为“针对AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数进行性能优化”
4月28日 修改标题为 “针对AntiSemiProbeSink - probe_anti_semi_with_bitmap函数进行性能优化”,原标题为“针对AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数进行性能优化”
4月28日 修改了issue 的描述
4月28日 关联了pull request:AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数性能优化
4月29日 修改了issue 的描述
AntiSemiProbeSinkprobe_anti_semi_with_bitmap函数存在的性能问题
1.逐行函数调用导致调用开销累积
其中mark_used的函数体包含三步操作
即使编译器内联这个函数,每次迭代仍需展开上述完整的指令序列。在Probe阶段中,当左表的某一行在右表中匹配到多行时,inner_iter会产出多个(table_idx,row_idx)对,每个都触发一次完整的调用链
2.未利用SIMD指令
该函数涉及的主要计算场景是Bitmap的位清除,Bitmap的位清除操作本质上是字节级的AND运算,天然适合SIMD并行处理,目前的操作属于标量循环,未利用向量计算能力