Andrew Dunstan <and...@dunslane.net> writes: > Cool, I took this and ran with it a bit. (See attached) Here are > comparative timings for 1000 iterations parsing most of the > information_schema.sql, all the way back to 9.3: > ... > ==== REL_15_STABLE ==== > Time: 3372.491 ms (00:03.372) > ==== REL_16_STABLE ==== > Time: 1654.056 ms (00:01.654) > ==== HEAD ==== > Time: 1614.949 ms (00:01.615) > This is fairly repeatable.
These results astonished me, because I didn't recall us having done anything that'd be likely to double the speed of the raw parser. So I set out to replicate them, intending to bisect to find where the change happened. And ... I can't replicate them. What I got is essentially level performance from HEAD back to d10b19e22 (Stamp HEAD as 14devel): HEAD: 3742.544 ms d31d30973a (16 stamp): 3871.441 ms 596b5af1d (15 stamp): 3759.319 ms d10b19e22 (14 stamp): 3730.834 ms The run-to-run variation is a couple percent, which means that these differences are down in the noise. This is using your test code from github (but with 5000 iterations not 1000). Builds are pretty vanilla with asserts off, on an M1 MacBook Pro. The bison version might matter here: it's 3.8.2 from MacPorts. I wondered if you'd tested assert-enabled builds, but there doesn't seem to be much variation with that turned on either. So I'm now a bit baffled. Can you provide more color on what your test setup is? regards, tom lane