Re: Binary search in fmgr_isbuiltin() is a bottleneck.
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Jeevan Ladhe <jeevan.ladhe@enterprisedb.com>, PostgreSQL Developers <pgsql-hackers@postgresql.org>
Date: 2017-09-27T19:30:45Z
Lists: pgsql-hackers
On Wed, Sep 27, 2017 at 1:40 PM, Andres Freund <andres@anarazel.de> wrote: > I don't think you can even measure the overhead of building the > table. This is inserting ~8k rows in an accurately sized hashtable - a > vanishingly small amount of time in comparison to the backend startup > time (and even more so postmaster startup). My measurement shows it > takes about 0.4 ms to build (gdb in, query, reset oid2builtins = 0, > query - repeat a couple times). 0.4ms isn't negligible as a fraction of backend startup time, is it? I think backend startup time is a few milliseconds. $ echo '\set x 1' > x.txt $ pgbench -n -C -c 1 -f x.txt -T 10 transaction type: x.txt scaling factor: 1 query mode: simple number of clients: 1 number of threads: 1 duration: 10 s number of transactions actually processed: 5091 latency average = 1.965 ms tps = 508.866931 (including connections establishing) tps = 12909.303693 (excluding connections establishing) -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Replace binary search in fmgr_isbuiltin with a lookup array.
- 212e6f34d55c 11.0 landed
-
Add inline murmurhash32(uint32) function.
- 791961f59b79 11.0 cited