Re: bugfix patch for json_array_elements

Поиск
Список
Период
Сортировка
От Craig Ringer
Тема Re: bugfix patch for json_array_elements
Дата
Msg-id 52EEF6D8.4080409@2ndquadrant.com
обсуждение исходный текст
Ответ на Multiple calls to json_array_elements slow down nonlinearly  (Craig Ringer <craig@2ndquadrant.com>)
Ответы Re: bugfix patch for json_array_elements  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
On 02/03/2014 09:09 AM, Craig Ringer wrote:

> At a guess, we're looking at a case where a new child context is created
> at every call, so every MemoryContextResetChildren call has to deal with
> more child contexts.

That would be "yes". After a short run, I see 32849 lines like:

json_array_elements temporary cxt: 8192 total in 1 blocks; 8160 free (0
chunks); 32 used

under the context:

  PortalMemory: 8192 total in 1 blocks
    PortalHeapMemory: 7168 total in 3 blocks
      ExecutorState: 65600 total in 4 blocks
        ExprContext: 8192 total in 1 blocks
          json_array_elements temporary cxt: 8192 total in 1 blocks;
8160 free (0 chunks); 32 used


The attached patch deletes the context after use, bringing performance
back into line. It should be backpatched to 9.3.

--
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

Вложения

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

Предыдущее
От: Fujii Masao
Дата:
Сообщение: Re: pg_basebackup and pg_stat_tmp directory
Следующее
От: Marko Tiikkaja
Дата:
Сообщение: Re: plpgsql.warn_shadow