On Sun, 31 May 2020 at 08:04, Michael Paquier <michael@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.