Re: Query is over 2x slower with jit=on
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
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-09-20T03:39:22Z
Lists: pgsql-hackers
On 2018-09-19 23:26:52 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2018-09-17 17:50:15 -0400, Tom Lane wrote: > >> Just to throw a contrarian opinion into this: I find the current EXPLAIN > >> output for JIT to be insanely verbose already. > > > Hm, it'd have been nice to get that feedback a little bit earlier, I did > > inquire... > > > Currently: > > > JIT: > > Functions: 2 > > Generation Time: 0.680 ms > > Inlining: true > > Inlining Time: 7.591 ms > > Optimization: true > > Optimization Time: 20.522 ms > > Emission Time: 14.607 ms > > Just to clarify, that seems perfectly fine for the "machine readable" > output formats. I'd just like fewer lines in the "human readable" > output. Yea, I do think that's a fair complaint. > > How about making that: > > > JIT: > > Functions: 2 FWIW, not that I want to do that now, but at some point it might make sense to sub-divide this into things like number of "expressions", "tuple deforming", "plans", ... Just mentioning that if somebody wants to comment on reformatting this as well, if we're tinkering anyway. > > Options: Inlining, Optimization > > Times (Total, Generation, Inlining, Optimization, Emission): 43.4 ms, 0.680 ms, 7.591 ms, 20.522 ms, 14.607 ms > > > or something similar? > > That's going in the right direction. Personally I'd make the last line > more like > > Times: generation 0.680 ms, inlining 7.591 ms, optimization 20.522 ms, emission 14.607 ms, total 43.4 ms Yea, that's probably easier to read. > (total at the end seems more natural to me, YMMV). I kind of think doing it first is best, because that's usually the first thing one wants to know. > Also, the "options" format you suggest here seems a bit too biased > towards binary on/off options --- what happens when there's a > three-way option? So maybe that line should be like > > Options: inlining on, optimization on > > though I'm less sure about that part. I'm pretty certain you're right :). There's already arguments around making optimization more gradual (akin to O1,2,3). Greetings, Andres Freund
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