| From: | Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Minor refactoring in heap_page_prune |
| Date: | 2024-04-01 09:21:16 |
| Message-ID: | E1rrDqu-006p45-Be@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Minor refactoring in heap_page_prune
Pass 'page', 'blockno' and 'maxoff' to heap_prune_chain() as
arguments, so that it doesn't need to fetch them from the buffer. This
saves a few cycles per chain.
Remove the "if (off_loc != NULL)" checks, and require the caller to
pass a non-NULL 'off_loc'. Pass a pointer to a dummy local variable
when it's not needed. Those checks are cheap, but it's still better to
avoid them in the per-chain loops when we can do so easily.
The CPU time saving from these changes are hardly measurable, but
fewer instructions is good anyway, so why not. I spotted the potential
for these while reviewing Melanie Plageman's patch set to combine
prune and freeze records.
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/9917e79d995c845adfe9b6cb3ea5cb7af7cec654
Modified Files
--------------
src/backend/access/heap/pruneheap.c | 37 +++++++++++++++----------------------
1 file changed, 15 insertions(+), 22 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Heikki Linnakangas | 2024-04-01 10:31:24 | pgsql: Refactor heap_prune_chain() |
| Previous Message | Masahiko Sawada | 2024-04-01 06:25:49 | pgsql: Add new COPY option LOG_VERBOSITY. |