Re: [PATCH] backend: compare word-at-a-time in bcTruelen

Поиск
Список
Период
Сортировка
От Stefan Kaltenbrunner
Тема Re: [PATCH] backend: compare word-at-a-time in bcTruelen
Дата
Msg-id 4A38E494.1020303@kaltenbrunner.cc
обсуждение исходный текст
Ответ на Re: [PATCH] backend: compare word-at-a-time in bcTruelen  (Jeremy Kerr <jk@ozlabs.org>)
Список pgsql-hackers
Jeremy Kerr wrote:
> Hi all,
> 
>> Speaking of which, what about some performance numbers?
> 
> OK, benchmarks done:
> 
>  http://ozlabs.org/~jk/projects/db/data/postgres.bcTruelen/
> 
> Summary: small increase in performance (~1-2% on my machine), at about 
> 1.5 standard deviations from the mean. Profiles show a decent drop in 
> hits within bcTruelen.
> 
> However: Sysbench seems to be quite heavy with the fixed-width char 
> types, so may end up calling bcTruelen more than most workloads. Would 
> be nice to get some x86 numbers too, but I don't have a suitable machine 
> here.

This improves my numbers from 46000 queries/s to 52000 queries/s for:

--num-threads=16 --test=oltp --db-ps-mode=auto --pgsql-user=postgres 
--test=oltp --oltp-read-only=on --oltp-sum-ranges=0 
--oltp-simple-ranges=0 --oltp-order-ranges=10 --oltp-point-selects=0 
--oltp-distinct-ranges=0 --oltp-skip-trx=off run

with a profile 16 connections like:

samples  %        symbol name
1925976  23.7136  bcTruelen
329453    4.0564  AllocSetAlloc
292176    3.5974  slot_deform_tuple
278996    3.4351  index_getnext
165397    2.0365  _bt_checkkeys
155621    1.9161  appendBinaryStringInfo
141295    1.7397  LWLockAcquire
136197    1.6769  internal_putbytes
130474    1.6065  AllocSetFree
121341    1.4940  printtup
116413    1.4333  hash_search_with_hash_value
109573    1.3491  FunctionCall2
95101     1.1709  heap_form_minimal_tuple
91475     1.1263  enlargeStringInfo
90841     1.1185  heap_fill_tuple
89926     1.1072  ExecProcNode
86112     1.0603  varstr_cmp

and after the patch applied:

samples  %        symbol name
2225769   7.8378  bcTruelen
1335050   4.7013  index_getnext
1296272   4.5647  AllocSetAlloc
1132026   3.9863  slot_deform_tuple
702219    2.4728  _bt_checkkeys
640675    2.2561  appendBinaryStringInfo
611783    2.1543  LWLockAcquire
599402    2.1107  AllocSetFree
590557    2.0796  internal_putbytes
525526    1.8506  printtup
476077    1.6765  hash_search_with_hash_value
459660    1.6186  FunctionCall2
423569    1.4916  ExecProcNode
391476    1.3785  heap_form_minimal_tuple
385689    1.3582  heap_fill_tuple
383231    1.3495  enlargeStringInfo
368390    1.2973  comparetup_heap
363481    1.2800  varstr_cmp
360261    1.2686  ExecProject
356696    1.2561  pq_putmessage
354193    1.2473  MemoryContextAlloc
341262    1.2017  LWLockRelease
337970    1.1901  pq_begintypsend
321069    1.1306  pfree
310806    1.0945  tuplesort_gettuple_common



Stefan


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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Determining client_encoding from client locale
Следующее
От: Andrew Dunstan
Дата:
Сообщение: Re: Determining client_encoding from client locale