Re: Cutting initdb's runtime (Perl question embedded)
Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
From: ilmari@ilmari.org (Dagfinn Ilmari Mannsåker )
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andres Freund <andres@anarazel.de>, Andreas Karlsson <andreas@proxel.se>,
pgsql-hackers@postgreSQL.org
Date: 2017-04-18T09:19:52Z
Lists: pgsql-hackers
Attachments
Tom Lane <tgl@sss.pgh.pa.us> writes: > Andres Freund <andres@anarazel.de> writes: >> On 2017-04-17 17:49:54 +0100, Dagfinn Ilmari Mannsåker wrote: >>> I threw Devel::NYTProf at it and picked some more low-hanging fruit. > >> I'm a bit doubtful about improving the performance of genbki at the cost >> of any sort of complication - it's only executed during the actual >> build, not during initdb... I don't see much point in doing things like >> 3) and 4), it's just not worth it imo. > > Yeah, it's only run once per build, or probably even less often than that > considering we only re-run it when the input files change. I could get > interested in another 20% reduction in initdb's time, but not genbki's. Fair enough. I still think 1), 2) and 5) are worthwile code cleanups regardless of the performance impact. In fact, if we don't care that much about the performance, we can move the duplicated code in Gen_fmgrmtab.pl and genbki.pl that turns bki_values into a hash into Catalogs.pm. That regresses genbki.pl time by ~30ms on my machine. Revised patch series attached. -- - Twitter seems more influential [than blogs] in the 'gets reported in the mainstream press' sense at least. - Matt McLeod - That'd be because the content of a tweet is easier to condense down to a mainstream media article. - Calle Dybedahl
Commits
-
Attempt to identify system timezone by reading /etc/localtime symlink.
- 995b4fe0b14f 11.4 landed
- 8de574aa8bf7 10.9 landed
- 77dc741a1727 9.5.18 landed
- 75b0f21e1b19 9.6.14 landed
- 37011bcb30a9 9.4.23 landed
- 23bd3cec6eb1 12.0 landed
-
Make sure to run one initdb TAP test with no TZ set
- 033b969edde6 10.0 landed
-
Use one transaction while reading postgres.bki, not one per line.
- 85a0781334a2 10.0 landed
-
Move bootstrap-time lookup of regproc OIDs into genbki.pl.
- 5e39f06cfe65 10.0 landed