Re: [HACKERS] Profile of current backend (fwd)

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: matti(at)algonet(dot)se
Cc: hackers(at)postgreSQL(dot)org (PostgreSQL-development)
Subject: Re: [HACKERS] Profile of current backend (fwd)
Date: 1998-02-05 20:26:22
Message-ID: 199802052026.PAA18172@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Here are my ideas.

Can you look at fmgr_isbuiltin? It is doing a binary search looking to
see if it is builtin. Is it wrong? Is there a better way to do this?
Seems like a lot of cpu for this.

Also, locking seems to be taking quite a bit of cpu, especially if you
add up all the locking calls together. Can you check and see if there
is a cleaner way to do this?

hash_search also looks like it could be improved. This is called a lot
by the locking code. I know because when I added real deadlock
detection, I had to work with this stuff.

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

Forwarded message:
> From maillist Thu Feb 5 15:11:14 1998
> Subject: Re: [HACKERS] Profile of current backend
> To: matti(at)algonet(dot)se (Mattias Kregert)
> Date: Thu, 5 Feb 1998 15:11:14 -0500 (EST)
> Cc: meskes(at)topsystem(dot)de, pgsql-hackers(at)postgreSQL(dot)org
> In-Reply-To: <34DA19A1(dot)14BD647E(at)algonet(dot)se> from "Mattias Kregert" at Feb 5, 98 08:57:21 pm
> X-Mailer: ELM [version 2.4 PL25]
> MIME-Version: 1.0
> Content-Type: text/plain; charset=US-ASCII
> Content-Transfer-Encoding: 7bit
> Content-Length: 4140
>
> Interesting. Nothing is jumping out at me. Looks like we could try to
> clean up heapgettup() to see if there is anything in there that can be
> speeded up.
>
> None of the calls looks like it should be inlined. Do you see any that
> look good for inlining?
>
>
> >
> > Meskes, Michael wrote:
> > >
> > > I take it some of you have already run the backend against a profiler.
> > > Could anyone please tell me which functions need works most?
> >
> > SYSTEM: Linux 2.0.29, gcc 2.7.2
> > -------------------------------
> > [make distclean]
> > [CVSup'ed current source 1998-02-05]
> > [./configure]
> > [make]
> > [CUSTOM_LDFLAGS not settable in Makefile.custom ...]
> > [... setting LDFLAGS=-pg ins Makefile.global]
> >
> > --> fmgr.c: In function `fmgr_pl':
> > --> fmgr.c:46: `fmgr_pl_finfo' undeclared (first use this function)
> > [fix] cp backend/utils/fmgr.h backend/utils/fmgr/fmgr.h
> >
> > [make install]
> > [Run initdb]
> > [Regression tests]
> > strings .. failed [ok]
> > lseg .. failed [new operator <= on lseg]
> > horology .. failed [daylight savings error?]
> > triggers .. failed
> > select_views .. failed
> >
> >
> > PROFILE OF REGRESSION TEST:
> > ---------------------------
> > time seconds seconds calls ms/call ms/call name
> > 35.16 7.97 7.97 mcount (profiler overhead)
> > 5.91 9.31 1.34 9924 0.14 0.20 heapgettup
> > 4.54 10.34 1.03 234597 0.00 0.01 hash_search
> > 2.12 10.82 0.48 151781 0.00 0.00 SpinAcquire
> > 2.03 11.28 0.46 46635 0.01 0.02 SearchSysCache
> > 1.63 11.65 0.37 171345 0.00 0.00 tag_hash
> > 1.46 11.98 0.33 20511 0.02 0.02 yylex
> > 1.41 12.30 0.32 31311 0.01 0.03 LockAcquire
> > 1.28 12.59 0.29 1522 0.19 0.61 yyparse
> > 1.24 12.87 0.28 41176 0.01 0.01 fmgr_isbuiltin
> > 1.01 13.10 0.23 201572 0.00 0.00 AllocSetAlloc
> > 0.84 13.29 0.19 186214 0.00 0.00 OrderedElemPop
> > 0.75 13.46 0.17 42896 0.00 0.00 nocachegetattr
> > 0.71 13.62 0.16 29869 0.01 0.04 LockRelease
> > 0.66 13.77 0.15 151781 0.00 0.00 SpinRelease
> > 0.66 13.92 0.15 88766 0.00 0.01 newNode
> > 0.66 14.07 0.15 52248 0.00 0.00 _bt_compare
> > ... around 1850 functions follows (0.66 - 0.0%)
> >
> > heapgettup (called by, calling):
> > --------------------------------
> > index % time self children called name
> > 0.01 0.01 96/9924 heap_markpos [448]
> > 0.21 0.11 1566/9924 heap_restrpos [102]
> > 1.12 0.58 8262/9924 heap_getnext [20]
> > [14] 13.8 1.34 0.69 9924 heapgettup [14]
> > 0.04 0.14 9924/9924 RelationGetBufferWithBuffer [148]
> > 0.03 0.15 5642/5702 ReleaseAndReadBuffer [145]
> > 0.10 0.00 26276/42896 nocachegetattr [158]
> > 0.01 0.08 7111/9607 HeapTupleSatisfiesVisibility [185]
> > 0.04 0.00 117785/126582 char16eq [339]
> > 0.02 0.00 111941/111994 int4eq [427]
> > 0.02 0.00 109647/112329 nameeq [426]
> > 0.00 0.01 1770/31585 ReleaseBuffer [134]
> > 0.01 0.00 14000/50173 PageGetMaxOffsetNumber [341]
> > 0.01 0.00 5185/5433 chareq [537]
> > 0.01 0.00 15566/90147 BufferGetBlock [311]
> > 0.01 0.00 17336/240911 BufferIsValid [207]
> > 0.00 0.00 4/1973 int2eq [575]
> > 0.00 0.00 7412/7412 nextpage [1186]
> > 0.00 0.00 951/1358 SetBufferCommitInfoNeedsSave [1253]
> > --------------------------------
> >
> > The *complete* gprof output is here:
> > ftp://postgresql.org/pub/incoming/regression-profile-980205.gz 156k
> >
> > /* m */
> >
> >
>
>
> --
> Bruce Momjian
> maillist(at)candle(dot)pha(dot)pa(dot)us
>

--
Bruce Momjian
maillist(at)candle(dot)pha(dot)pa(dot)us

Browse pgsql-hackers by date

  From Date Subject
Next Message Brett McCormick 1998-02-05 21:14:30 Re: [HACKERS] create function bug?
Previous Message Bruce Momjian 1998-02-05 20:11:14 Re: [HACKERS] Profile of current backend