Re: Inlining comparators as a performance optimisation

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Inlining comparators as a performance optimisation
Дата
Msg-id 27619.1316487092@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Inlining comparators as a performance optimisation  (Peter Geoghegan <peter@2ndquadrant.com>)
Ответы Re: Inlining comparators as a performance optimisation
Re: Inlining comparators as a performance optimisation
Список pgsql-hackers
Peter Geoghegan <peter@2ndquadrant.com> writes:
> Once the cache has been warmed, explain analyze very consistently
> reports a runtime of 123ms for this query on master/HEAD, which varies
> +/- 1 ms, with a few outliers of maybe +/- 2ms. However, when I apply
> this patch, that goes down to 107ms +/- 1ms at -O0. I think that
> that's a pretty good start. Funnily enough, the difference/advantage
> vanishes at -O2 (I'm guessing that the higher optimisation level of
> GCC 4.5 hyper-corrects away the inlining, but I don't have time to
> check that right now).

Considering that -O2 is our standard optimization level, that
observation seems to translate to "this patch will be useless in
practice".  I think you had better investigate that aspect in some
detail before spending more effort.

> This performance patch differs from most in that it's difficult in
> principle to imagine a performance regression occurring.

Really?  N copies of the same code could lead to performance loss just
due to code bloat (ie, less of a query's inner loops fitting in CPU
cache).  Not to mention the clear regression in maintainability.  So
I'm disinclined to consider this sort of change without a significantly
bigger win than you're suggesting above (no, I don't even consider the
-O0 number attractive, let alone what you're finding at -O2).
        regards, tom lane


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: File not found error on creating collation
Следующее
От: Darren Duncan
Дата:
Сообщение: Re: Is there really no interest in SQL Standard?