Re: plpython3 perf - Mailing list pgsql-hackers

From Joshua D. Drake
Subject Re: plpython3 perf
Date
Msg-id 1264446734.6089.56.camel@jd-desktop.iso-8859-1.charter.com
Whole thread Raw
In response to Re: plpython3 perf  (James William Pye <lists@jwp.name>)
List pgsql-hackers
On Wed, 2010-01-20 at 19:32 -0700, James William Pye wrote:


> Apologies ahead of time for the lack pretty graphs. =)
> 
> I used two different builds/installations of PG to test as the PL names conflict. Both were compiled with the
followingCFLAGS(pg_config output):
 
> 
> -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
-fwrapv
> 
> Both PLs were built against the same build of Python(recent svn update of release31-maint):
> 
> Python 3.1.1+ (release31-maint:77585M, Jan 17 2010, 10:29:13) 
> [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
> 

This is great stuff. Thanks for your diligence.


> I ran each of the test files a few times against the target installation, but I only attached one of each to this
message.(Primarily, multiple runs to filter out any spurious spikes.)
 
> 
> The source SQL and output files are attached.
> 
> rawtest.sql.out is the output for raw data objects(native typing).
> pytypestest.sql.out is the output of the @pytypes test(native typing with conversion overhead).
> plpythontest.sql.out is the output for core's plpython(conversion).
> 
> A few samples from the output files are included inline below.
> 
> Each volatile function is called 100,000 times from a COUNT() aggregate, and the duration is measured using psql's
\timing.Most of the functions simply return the first parameter given to it. The functions are ran inside a transaction
becauseplpython3 does some cache clears(linecache) and GC at the end of transactions.
 
> 
> The parameter type, if any, is indicated by the label:
> 
> noparams:
> 
>     raw: 125ms
>     pytypes: 372ms (base overhead, it would appear)
>     plpython: 309ms
> 
> oneint2:
> 
>     raw: 140ms
>      pytypes: 684ms
>     plpython: 750ms
> 
> oneint8:
> 
>     raw: 145ms
>     pytypes: 676ms
>     plpython: 718ms
> 
> text_large:
> 
>     raw: 271ms
>     pytypes: 2766ms
>     plpython: 2310ms
> 
> composite:
> 
>     raw: 235ms
>     pytypes: 795ms (N/A, no conversion done, but takes a bit of a hit anyways)
>     plpython: 1654ms
> 
> 


-- 
PostgreSQL.org Major Contributor
Command Prompt, Inc: http://www.commandprompt.com/ - 503.667.4564
Consulting, Training, Support, Custom Development, Engineering
Respect is earned, not gained through arbitrary and repetitive use or Mr. or Sir.



pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: Dividing progress/debug information in pg_standby, and stat before copy
Next
From: Robert Haas
Date:
Subject: Re: Red-black tree for GIN