diff options
author | Daniel Gustafsson | 2023-09-08 13:05:12 +0000 |
---|---|---|
committer | Daniel Gustafsson | 2023-09-08 13:05:12 +0000 |
commit | 5a3423ad8ee171fbf08317917981effe47d211eb (patch) | |
tree | 6e4e846b3062d95466812357504e433e7ba7020a /src/backend/jit/llvm/llvmjit_expr.c | |
parent | 6fe3cefde4b414819d9bb68999ae235a9fc3ce83 (diff) |
Add JIT deform_counter
generation_counter includes time spent on both JIT:ing expressions
and tuple deforming which are configured independently via options
jit_expressions and jit_tuple_deforming. As they are combined in
the same counter it's not apparent what fraction of time the tuple
deforming takes.
This adds deform_counter dedicated to tuple deforming, which allows
seeing more directly the influence jit_tuple_deforming is having on
the query. The counter is exposed in EXPLAIN and pg_stat_statements
bumpin pg_stat_statements to 1.11.
Author: Dmitry Dolgov <[email protected]>
Reviewed-by: Pavel Stehule <[email protected]>
Reviewed-by: Daniel Gustafsson <[email protected]>
Discussion: https://postgr.es/m/[email protected]
Diffstat (limited to 'src/backend/jit/llvm/llvmjit_expr.c')
-rw-r--r-- | src/backend/jit/llvm/llvmjit_expr.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/jit/llvm/llvmjit_expr.c b/src/backend/jit/llvm/llvmjit_expr.c index 00d7b8110b9..2ac335e2389 100644 --- a/src/backend/jit/llvm/llvmjit_expr.c +++ b/src/backend/jit/llvm/llvmjit_expr.c @@ -121,7 +121,9 @@ llvm_compile_expr(ExprState *state) LLVMValueRef v_aggnulls; instr_time starttime; + instr_time deform_starttime; instr_time endtime; + instr_time deform_endtime; llvm_enter_fatal_on_oom(); @@ -315,10 +317,14 @@ llvm_compile_expr(ExprState *state) */ if (tts_ops && desc && (context->base.flags & PGJIT_DEFORM)) { + INSTR_TIME_SET_CURRENT(deform_starttime); l_jit_deform = slot_compile_deform(context, desc, tts_ops, op->d.fetch.last_var); + INSTR_TIME_SET_CURRENT(deform_endtime); + INSTR_TIME_ACCUM_DIFF(context->base.instr.deform_counter, + deform_endtime, deform_starttime); } if (l_jit_deform) |