Re: Query is over 2x slower with jit=on
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Lukas Fittl <lukas@fittl.com>
Cc: Amit Khandekar <amitdkhan.pg@gmail.com>, Andreas Joseph Krogh <andreas@visena.com>, Robert Haas <robertmhaas@gmail.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, "Jonathan S. Katz" <jkatz@postgresql.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-10-03T19:56:46Z
Lists: pgsql-hackers
Hi, On 2018-10-01 00:32:18 -0700, Lukas Fittl wrote: > On Tue, Sep 25, 2018 at 1:17 PM, Andres Freund <andres@anarazel.de> wrote: > > > > I've pushed the change without that bit - it's just a few additional > > lines if we want to change that. > > > > It seems that since this commit, JIT statistics are now only being printed > for parallel query plans. This is due to ExplainPrintJIT being called > before ExecutorEnd, so in a non-parallel query, > queryDesc->estate->es_jit_combined_instr will never get set. Ugh. > Attached a patch that instead introduces a new ExplainPrintJITSummary > method that summarizes the statistics before they get printed. Yea, I had something like that, and somehow concluded that it wasn't needed, and moved it to the wrong place :/. > I've also removed an (I believe) unnecessary "if (estate->es_instrument)" > check that prevented EXPLAIN without ANALYZE from showing whether JIT would > be used or not. > > In addition this also updates a missed section in the documentation with > the new stats output format. Thanks a lot for the patch! I've pushed it with some mild changes (renamed es_jit_combined_stats to worker_stats; changed ExplainPrintJITSummary to not look at es_jit, but es_jit_flags as theoretically es_jit might not be allocated; very minor comment changes). - Andres
Commits
-
Fix issues around EXPLAIN with JIT.
- e97c4d967ba5 11.0 landed
- c03c1449c092 12.0 landed
-
Collect JIT instrumentation from workers.
- e63441c3f5ca 11.0 landed
- 33001fd7a707 12.0 landed
-
Make EXPLAIN output for JIT compilation more dense.
- 6859bd2632d8 11.0 landed
- 52050ad8ebec 12.0 landed
-
Save/restore SPI's global variables in SPI_connect() and SPI_finish().
- 825f10fbda7a 11.0 cited
-
Rationalize handling of single and double quotes in bootstrap data.
- 55d26ff638f0 11.0 cited