Re: Drastic performance loss in assert-enabled build in HEAD - Mailing list pgsql-hackers

From Kevin Grittner
Subject Re: Drastic performance loss in assert-enabled build in HEAD
Date
Msg-id 1364334371.353.YahooMailNeo@web162906.mail.bf1.yahoo.com
Whole thread Raw
In response to Drastic performance loss in assert-enabled build in HEAD  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Drastic performance loss in assert-enabled build in HEAD  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Using HEAD's pg_dump, I see "pg_dump -s regression" taking 5
> seconds.
> On the other hand, running the same executable against the regression
> database on a 9.2 postmaster takes 1.2 seconds.  Looks to me like we
> broke something performance-wise.
>
> A quick check with oprofile says it's all AllocSetCheck's fault:
>
> samples  %        image name              symbol name
> 87777    83.6059  postgres                AllocSetCheck
> 1140      1.0858  postgres                base_yyparse
> 918      0.8744  postgres                AllocSetAlloc
> 778      0.7410  postgres                SearchCatCache
> 406      0.3867  postgres                pg_strtok
> 394      0.3753  postgres                hash_search_with_hash_value
> 387      0.3686  postgres                core_yylex
> 373      0.3553  postgres                MemoryContextCheck
> 256      0.2438  postgres                nocachegetattr
> 231      0.2200  postgres                ScanKeywordLookup
> 207      0.1972  postgres                palloc
>
> So maybe I'm nuts to care about the performance of an assert-enabled
> backend, but I don't really find a 4X runtime degradation acceptable,
> even for development work.  Does anyone want to fess up to having caused
> this, or do I need to start tracking down what changed?

I checked master HEAD for a dump of regression and got about 4
seconds.  I checked right after my initial push of matview code and
got 2.5 seconds.  I checked just before that and got 1 second.
There was some additional pg_dump work for matviews after the
initial push which may or may not account for the rest of the time.

Investigating now.

--
Kevin Grittner
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: spoonbill vs. -HEAD
Next
From: Tom Lane
Date:
Subject: Re: Ignore invalid indexes in pg_dump