Your patch has been added to the PostgreSQL unapplied patches list at:

        http://momjian.postgresql.org/cgi-bin/pgpatches

It will be applied as soon as one of the PostgreSQL committers reviews
and approves it.

---------------------------------------------------------------------------


Heikki Linnakangas wrote:
> Here's a patch to speed up CopyReadAttributesCSV. On the test case I've 
> been playing with, loading the TPC-H partsupp table, about 20% 
> CopyReadAttributesCSV (inlined into DoCopy, DoCopy itself is insignificant):
> 
> samples  %        image name               symbol name
> 8136     25.8360  postgres                 CopyReadLine
> 6350     20.1645  postgres                 DoCopy
> 2181      6.9258  postgres                 pg_verify_mbstr_len
> 2157      6.8496  reiserfs                 (no symbols)
> 1668      5.2968  libc-2.7.so              memcpy
> 1142      3.6264  libc-2.7.so              ____strtod_l_internal
> 951       3.0199  postgres                 heap_formtuple
> 904       2.8707  libc-2.7.so              ____strtol_l_internal
> 619       1.9656  libc-2.7.so              memset
> 442       1.4036  libc-2.7.so              strlen
> 341       1.0828  postgres                 hash_any
> 329       1.0447  postgres                 pg_atoi
> 300       0.9527  postgres                 AllocSetAlloc
> 
> With this patch, the usage of that function goes down to ~13%
> 
> samples  %        image name               symbol name
> 7191     28.7778  postgres                 CopyReadLine
> 3257     13.0343  postgres                 DoCopy
> 2127      8.5121  reiserfs                 (no symbols)
> 1914      7.6597  postgres                 pg_verify_mbstr_len
> 1413      5.6547  libc-2.7.so              memcpy
> 920       3.6818  libc-2.7.so              ____strtod_l_internal
> 784       3.1375  libc-2.7.so              ____strtol_l_internal
> 745       2.9814  postgres                 heap_formtuple
> 508       2.0330  libc-2.7.so              memset
> 398       1.5928  libc-2.7.so              strlen
> 315       1.2606  postgres                 hash_any
> 255       1.0205  postgres                 AllocSetAlloc
> 
> The trick is to split the loop in CopyReadAttributesCSV into two parts, 
> inside quotes, and outside quotes, saving some instructions in both 
> parts.
> 
> Your mileage may vary, but I'm quite happy with this. I haven't tested 
> it much yet, but I wouldn't expect it to be a loss in any interesting 
> scenario. The code also doesn't look much worse after the patch, perhaps 
> even better.
> 
> -- 
>    Heikki Linnakangas
>    EnterpriseDB   http://www.enterprisedb.com


> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>        http://momjian.us
  EnterpriseDB                             http://postgres.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

--
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your Subscription:
http://mail.postgresql.org/mj/mj_wwwusr?domain=postgresql.org&extra=pgsql-patches

Reply via email to