Re: Avoid stack frame setup in performance critical routines using tail calls
David Rowley <dgrowleyml@gmail.com>
From: David Rowley <dgrowleyml@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>,
Robert Haas <robertmhaas@gmail.com>, Michael Paquier <michael.paquier@gmail.com>, Tomas Vondra <tv@fuzzy.cz>
Date: 2021-07-20T04:50:09Z
Lists: pgsql-hackers
Attachments
- benchresults.txt (text/plain)
On Tue, 20 Jul 2021 at 08:00, Andres Freund <andres@anarazel.de> wrote: > I have *not* carefully benchmarked this, but a quick implementation of this > does seem to increase readonly pgbench tps at a small scale by 2-3% (both Interesting. I've not taken the time to study the patch but I was running some other benchmarks today on a small scale pgbench readonly test and I took this patch for a spin to see if I could see the same performance gains. This is an AMD 3990x machine that seems to get the most throughput from pgbench with 132 processes I did: pgbench -T 240 -P 10 -c 132 -j 132 -S -M prepared --random-seed=12345 postgres master = dd498998a Master: 3816959.53 tps Patched: 3820723.252 tps I didn't quite get the same 2-3% as you did, but it did come out faster than on master. David
Commits
-
Optimize GenerationAlloc() and SlabAlloc()
- a0cd95448067 17.0 landed
-
Refactor AllocSetAlloc(), separating hot and cold paths
- 413c18401dcc 17.0 landed
-
Adjust memory allocation functions to allow sibling calls
- 743112a2e993 17.0 landed