Re: [HACKERS] Time to drop old-style (V0) functions?

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: [HACKERS] Time to drop old-style (V0) functions?
Дата
Msg-id CAFj8pRAA9yrkCTW0gryaFtHDd98695fNgqiZXqymWO9EMeuJ4A@mail.gmail.com
обсуждение исходный текст
Ответ на Time to drop old-style (V0) functions?  (Andres Freund <andres@anarazel.de>)
Ответы Re: [HACKERS] Time to drop old-style (V0) functions?  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers


2016-12-20 10:28 GMT+01:00 Andres Freund <andres@anarazel.de>:
On 2016-12-20 01:14:10 -0800, Andres Freund wrote:
> On 2016-12-20 09:59:43 +0100, Pavel Stehule wrote:
> > In this case some benchmark can be very important (and interesting). I am
> > not sure if faster function execution has significant benefit on Vulcano
> > like executor.
>
> It's fairly to see function calls as significant overhead. In fact, I
> moved things *away* from a pure Vulcano style executor, and the benefits
> weren't huge, primarily due to expression evaluation overhead (of which
> function call overhead is one part).  After JITing of expressions, it
> becomes even more noticeable, because the overhead of the expression
> evaluation is reduced.

For me a Vulcano style is row by row processing. Using JIT or not using has not significant impact.

Interesting change can be block level processing.
 

As an example, here's a JITed TPCH Q1 profile:
+   15.48%  postgres  postgres                          [.] slot_deform_tuple
+    8.42%  postgres  perf-27760.map                    [.] evalexpr90
+    5.98%  postgres  postgres                          [.] float8_accum
+    4.63%  postgres  postgres                          [.] slot_getattr
+    3.69%  postgres  postgres                          [.] bpchareq
+    3.39%  postgres  postgres                          [.] heap_getnext
+    3.22%  postgres  postgres                          [.] float8pl
+    2.86%  postgres  postgres                          [.] TupleHashTableMatch.isra.7
+    2.77%  postgres  postgres                          [.] hashbpchar
+    2.77%  postgres  postgres                          [.] float8mul
+    2.73%  postgres  postgres                          [.] ExecAgg
+    2.40%  postgres  postgres                          [.] hash_any
+    2.34%  postgres  postgres                          [.] MemoryContextReset
+    1.98%  postgres  postgres                          [.] pg_detoast_datum_packed


Our bottle neck is row format and row related processing.
 
evalexpr90 is the expression that does the aggregate transition
function. float8_accum, bpchareq, float8pl , float8mul, ...  are all
function calls, and a good percentage of the overhead in evalexpr90 is
pushing arguments onto fcinfo->arg[nulls].

Greetings,

Andres Freund

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

Предыдущее
От: Erik Rijkers
Дата:
Сообщение: Re: [HACKERS] Logical Replication WIP
Следующее
От: Petr Jelinek
Дата:
Сообщение: Re: [HACKERS] Logical Replication WIP