Re: Marginal performance improvement: replace bms_first_member loops
| От | Tom Lane |
|---|---|
| Тема | Re: Marginal performance improvement: replace bms_first_member loops |
| Дата | |
| Msg-id | 5102.1417202290@sss.pgh.pa.us обсуждение |
| Ответ на | Re: Marginal performance improvement: replace bms_first_member loops (David Rowley <dgrowleyml@gmail.com>) |
| Ответы |
Re: Marginal performance improvement: replace
bms_first_member loops
|
| Список | pgsql-hackers |
David Rowley <dgrowleyml@gmail.com> writes:
> A while back when I was benchmarking the planner time during my trials with
> anti/semi join removals, I wrote a patch to change the usage pattern for
> cases such as:
> if (bms_membership(a) != BMS_SINGLETON)
> return; /* nothing to do */
> singleton = bms_singleton_member(a);
> ...
> Into:
> if (!bms_get_singleton(a, &singleton))
> return; /* nothing to do */
> ...
> Which means 1 function call and loop over the bitmapset, rather than 2
> function
> calls and 2 loops over the set when the set is a singleton.
I went ahead and committed this with some cosmetic adjustments.
I'm not sure about there being any performance win in existing use-cases,
but it seems worth doing on notational grounds anyway.
regards, tom lane
В списке pgsql-hackers по дате отправления: