Re: Making empty Bitmapsets always be NULL

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: Yuya Watari <watari(dot)yuya(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Making empty Bitmapsets always be NULL
Date: 2023-07-02 21:27:25
Message-ID: CAApHDvp12Nf_fJT-+Py9m+tdjHB6nTgtDW2f_B-XPZbLKuSXmg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, 30 Jun 2023 at 14:11, Yuya Watari <watari(dot)yuya(at)gmail(dot)com> wrote:
> I have tested these versions with installcheck. Since the planning
> times obtained by installcheck vary each time, it is important to run
> it repeatedly and examine its distribution. I ran installcheck 100
> times for each version. The following tables and the attached figure
> show the results. From these results, we can conclude that the v4
> patch has no regression in the installcheck test. It seems to be
> slightly (0.31-0.38%) faster than the master. The difference between
> v4 and v4 with 0th word check is not so clear, but v4 may be faster.

I did the same on the AMD 3990x machine and an Apple M2 Pro machine.
On the M2 over the 100 runs v4 came out 1.18% faster and the 3990x was
1.25% faster than master. I've plotted the results in the attached
graphs.

Looking over the patch again, the only thing I'm tempted into changing
is to add Asserts like: Assert(a == NULL || a->words[a->nword - 1] !=
0) to each function just as extra reassurance that nothing
accidentally leaves trailing empty words.

If nobody else wants to take a look, then I plan to push the v4 + the
asserts in the next day or so.

David

Attachment Content-Type Size
image/png 68.9 KB
master_vs_v4_3990x.png image/png 77.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2023-07-02 21:50:47 Re: Replacing abort() with __builtin_trap()?
Previous Message Joe Conway 2023-07-02 20:34:40 Re: Optionally using a better backtrace library?