Bernd Helmle wrote:
--On Mittwoch, Mai 06, 2009 19:04:21 -0400 Tom Lane <t...@sss.pgh.pa.us> wrote:

So I'm now persuaded that a better textual representation for bytea
should indeed make things noticeably better here.  It would be
useful though to cross-check this thought by profiling a case that
dumps a comparable volume of text data that contains no backslashes...

This is a profiling result of the same data converted into a printable text format without any backslashes. The data amount is quite the same and as you already guessed, calls to appendBinaryStringInfo() and friends gives the expected numbers:


time   seconds   seconds    calls   s/call   s/call  name
35.13     24.67    24.67   134488     0.00     0.00  byteaout
32.61     47.57    22.90   134488     0.00     0.00  CopyOneRowTo
28.92     67.88    20.31    85967     0.00     0.00  pglz_decompress
0.67 68.35 0.47 4955300 0.00 0.00 hash_search_with_hash_value
 0.28     68.55     0.20 11643046     0.00     0.00  LWLockRelease
 0.28     68.75     0.20  4828896     0.00     0.00  index_getnext
 0.24     68.92     0.17  1208577     0.00     0.00  StrategyGetBuffer
 0.23     69.08     0.16 11643046     0.00     0.00  LWLockAcquire
...
 0.00     70.23     0.00   134498     0.00     0.00  enlargeStringInfo
 0.00     70.23     0.00   134497     0.00     0.00  appendBinaryStringInfo
 0.00     70.23     0.00   134490     0.00     0.00  AllocSetReset
 0.00     70.23     0.00   134490     0.00     0.00  resetStringInfo
 0.00     70.23     0.00   134488     0.00     0.00  CopySendChar
 0.00     70.23     0.00   134488     0.00     0.00  CopySendEndOfRow


while doing some pg_migrator testing I noticed that dumping a database seems to be much slower than IO-system is capable off. ie i get 100% CPU usage with no IO-wait at all with between 15-30MB/s read rate if i say do a pg_dumpall > /dev/null.

The profile for that looks like:


samples  %        image name               symbol name
1333764  29.3986  postgres                 CopyOneRowTo
463205   10.2099  postgres                 enlargeStringInfo
237117    5.2265  postgres                 AllocSetAlloc
231017    5.0920  postgres                 appendBinaryStringInfo
224792    4.9548  postgres                 heap_deform_tuple
172154    3.7946  postgres                 AllocSetReset
162434    3.5803  postgres                 DoCopyTo
149948    3.3051  postgres                 internal_putbytes
137548    3.0318  postgres                 OutputFunctionCall
129480    2.8540  postgres                 heapgettup_pagemode
101017    2.2266  postgres                 FunctionCall1
93584     2.0628  postgres                 pq_putmessage
86553     1.9078  postgres                 timesub
81400     1.7942  postgres                 CopySendChar
81230     1.7905  postgres                 int4out
78374     1.7275  postgres                 localsub
52003     1.1462  postgres                 MemoryContextAlloc
51265     1.1300  postgres                 CopySendEndOfRow
49849     1.0988  postgres                 SPI_push_conditional
48157     1.0615  postgres                 pg_server_to_client
47670     1.0507  postgres                 timestamptz_out
42762     0.9426  postgres                 timestamp2tm


Stefan

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to