Re: Query is over 2x slower with jit=on
Stephen Frost <sfrost@snowman.net>
From: Stephen Frost <sfrost@snowman.net>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, 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-20T13:07:21Z
Lists: pgsql-hackers
Greetings, * Andres Freund (andres@anarazel.de) wrote: > On 2018-09-19 23:26:52 -0400, Tom Lane wrote: > > Andres Freund <andres@anarazel.de> writes: > > > 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 [...] > > > 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. I'd actually think we'd maybe want some kind of 'verbose' mode which shows exactly what got JIT'd and what didn't- one of the questions that I think people will be asking is "why didn't X get JIT'd?" and I don't think that's very easy to figure out currently. > > > 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. I tend to agree that it's easier to read but I'm not sure we need to quite go that far in reducing the number of rows. > > (total at the end seems more natural to me, YMMV). I agree with this.. > I kind of think doing it first is best, because that's usually the first > thing one wants to know. and this, so what about: Times: generation 0.680 ms, inlining 7.591 ms, optimization 20.522 ms, emission 14.607 ms Total: 43.4 ms Gets the total out there quick on the left where you're scanning down while keeping the detailed info above for reviewing after. > > 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). That certainly sounds like it'd be very neat to have though I wonder how well we'll be able to automatically plan out which optimization level to use when.. Thanks! Stephen
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