Re: [Proposal] Add accumulated statistics for wait event

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: [Proposal] Add accumulated statistics for wait event
Дата
Msg-id 20210614183159.m4pdxwmkqon5sxhb@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: [Proposal] Add accumulated statistics for wait event  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Hi,

On 2021-06-14 11:27:21 -0700, Andres Freund wrote:
> On 2021-06-14 16:10:32 +0200, Jehan-Guillaume de Rorthais wrote:
> > In the patch in attachment, I tried to fix this by using kind of an internal
> > hook for pgstat_report_wait_start and pgstat_report_wait_end. This allows to
> > "instrument" wait events only when required, on the fly, dynamically.
> 
> That's *far worse*. You're adding an indirect function call. Which requires
> loading a global variable and then a far call to a different function. You're
> changing a path that's ~2 instructions with minimal dependencies (and no
> branches (i.e. fully out of order executable) to something on the order of ~15
> instructions with plenty dependencies and at least two branches (call, ret).

In the case at hand it might even be worse, because the external function call
will require registers to be spilled for the function call. Right now wait
events "use" two register (one for the wait event, one for my_wait_event_info),
but otherwise don't cause additional spilling. With your change you'd see
register spill/reload around both wait start and end.

Greetings,

Andres Freund



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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: [Proposal] Add accumulated statistics for wait event
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: PG 14 release notes, first draft