pgsql: Micro-optimize pg_lfind32().

Поиск
Список
Период
Сортировка
От Nathan Bossart
Тема pgsql: Micro-optimize pg_lfind32().
Дата
Msg-id E1rpC7u-005ogb-6S@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Micro-optimize pg_lfind32().

This commit improves the performance of pg_lfind32() in many cases
by modifying it to process the remaining "tail" of elements with
SIMD instructions instead of processing them one-by-one.  Since the
SIMD code processes a large block of elements, this means that we
will process a subset of elements more than once, but that won't
affect the correctness of the result, and testing has shown that
this helps more cases than it regresses.  With this change, the
standard one-by-one linear search code is only used for small
arrays and for platforms without SIMD support.

Suggested-by: John Naylor
Reviewed-by: John Naylor
Discussion: https://postgr.es/m/20231129171526.GA857928%40nathanxps13

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/7644a7340c8a7764f1b20b34e1273b41347cbfcb

Modified Files
--------------
src/include/port/pg_lfind.h | 114 +++++++++++++++++++++++++++++---------------
1 file changed, 76 insertions(+), 38 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Propagate pathkeys from CTEs up to the outer query.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix failure of ALTER FOREIGN TABLE SET SCHEMA to move sequences.