Drastic performance loss in assert-enabled build in HEAD

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: Drastic performance loss in assert-enabled build in HEAD
Date: 2013-03-26 20:21:59
Message-ID: 19246.1364329319@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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?

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2013-03-26 20:33:53 Re: spoonbill vs. -HEAD
Previous Message Andres Freund 2013-03-26 20:20:19 Re: [COMMITTERS] pgsql: Add PF_PRINTF_ATTRIBUTE to on_exit_msg_fmt.