On Sun, 31 May 2020 at 08:04, Michael Paquier <mich...@paquier.xyz> wrote: > This stuff is interesting. Do you have some perf profiles to share? > I am wondering what's the effect of the inlining with your test > cases.
Below are the perf numbers for asignmany.sql : HEAD : + 16.88% postgres postgres [.] CachedPlanIsSimplyValid + 16.64% postgres plpgsql.so [.] exec_stmt + 15.56% postgres plpgsql.so [.] exec_eval_expr + 13.58% postgres plpgsql.so [.] exec_assign_value + 7.49% postgres plpgsql.so [.] exec_cast_value + 7.17% postgres plpgsql.so [.] exec_assign_expr + 5.39% postgres postgres [.] MemoryContextReset + 3.91% postgres postgres [.] ExecJustConst + 3.33% postgres postgres [.] recomputeNamespacePath + 2.88% postgres postgres [.] OverrideSearchPathMatchesCurrent + 2.18% postgres plpgsql.so [.] exec_eval_cleanup.isra.17 + 2.15% postgres plpgsql.so [.] exec_stmts + 1.32% postgres plpgsql.so [.] MemoryContextReset@plt + 0.57% postgres plpgsql.so [.] CachedPlanIsSimplyValid@plt + 0.57% postgres postgres [.] GetUserId 0.30% postgres plpgsql.so [.] assign_simple_var.isra.13 0.05% postgres [kernel.kallsyms] [k] unmap_page_range Patched : + 18.22% postgres postgres [.] CachedPlanIsSimplyValid + 17.25% postgres plpgsql.so [.] exec_eval_expr + 16.31% postgres plpgsql.so [.] exec_stmts + 15.00% postgres plpgsql.so [.] exec_assign_value + 7.56% postgres plpgsql.so [.] exec_assign_expr + 5.64% postgres postgres [.] MemoryContextReset + 5.16% postgres postgres [.] ExecJustConst + 4.86% postgres postgres [.] recomputeNamespacePath + 4.54% postgres postgres [.] OverrideSearchPathMatchesCurrent + 2.33% postgres plpgsql.so [.] exec_eval_cleanup.isra.17 + 1.26% postgres plpgsql.so [.] MemoryContextReset@plt + 0.81% postgres postgres [.] GetUserId + 0.71% postgres plpgsql.so [.] CachedPlanIsSimplyValid@plt 0.26% postgres plpgsql.so [.] assign_simple_var.isra.13 0.03% postgres [kernel.kallsyms] [k] unmap_page_range 0.02% postgres [kernel.kallsyms] [k] mark_page_accessed Notice the reduction in percentages : HEAD : exec_stmts + exec_stmt = 18.79 Patched : exec_stmts = 16.31 HEAD : exec_assign_value + exec_cast_value : 21.07 Patched : exec_assign_value = 15.00 As expected, reduction of percentage in these two functions caused other functions like CachedPlanIsSimplyValid() and exec_eval_expr() to show rise in their percentages.